Aktuelle Zeit: 22.06.2018 07:17

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Outdoor Routenplaner - Eric's Topotracker
BeitragVerfasst: 24.02.2018 12:09 
Offline

Registriert: 21.02.2018 14:26
DarkSoul hat geschrieben:
Hab mal gaanz kurz in das Repo reingeschaut bzw. an den üblich verdächtigen Stellen für sowas debuggt. Wenn ich das richtig sehe, kommt folgende Situation gelegentlich vor:

Der Thread, der die Tiles lädt, wird sein PostEvent (z. 1196) nicht los und kommt daher innerhalb der per Mutex gesperrten "Strecke" zum Stillstand, weil der Mainthread in Zeile 1206 an der noch gesperrten Mutex auf Einlass wartet und somit nicht für das Event aus dem Thread empfangsbereit ist, so dass der Lade-Thread die Mutex nicht freigibt, damit der Mainthread weiter laufen kann, um das Event aus dem PostEvent in Empfang nehmen zu können, damit der Thread ebenfalls weiterlaufen (bzw. in diesem Fall zuende laufen) kann.


Somit blockieren sich beide Threads gegenseitig und das Programm kommt zum Stillstand, da einer der Threads der Mainthread ist. <)

Wenn man den Code bei z. 1196 herum etwas abändert, ist das Problem weg und dann läuft's sogar etwas besser.

Habe mal ein bisschen Pfuschi-Pfusch das PostEvent aus dem Mutex-Abschnitt herausgezogen, so dass diese Verklemmung nicht mehr passieren kann:

Code:
LockMutex(PBMap\MemoryCacheAccessMutex)
Protected *a = PBMap\Window
Protected *b = PBmap\Gadget
UnlockMutex(PBMap\MemoryCacheAccessMutex)
PostEvent(#PB_Event_Gadget, *a, *b, #PB_MAP_TILE_CLEANUP, *Tile) ; To free memory outside the thread


Hallo,
ich habe keinen fremden Code oder Libraries benutzt sondern alles mit eigenem PB-Code entwickelt. Ehrlich gesagt wusste ich nicht mal von PBMap.
Unter Win64 läuft Topotracker bei mir in der Entwicklungsumgebung und als Anwendung stabil.
Ich benutze auch keinen Thread sondern regele das fortlaufende Zeichnen der Map über einen Eventtimer und einem Flag in der Event-Schleife.

Gruß
Erich

_________________
e-biker - Purebasic User seit 2009


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Outdoor Routenplaner - Eric's Topotracker
BeitragVerfasst: 24.02.2018 20:15 
Offline
Benutzeravatar

Registriert: 19.10.2006 12:51
Zitat:
Ich benutze auch keinen Thread sondern regele das fortlaufende Zeichnen der Map über einen Eventtimer und einem Flag in der Event-Schleife.


Und so fühlt es sich leider auch an :) .

Je mehr angefordert/gezeichnet werden muss, desto träger wird das Programm.

Wenn du dicht reinzoomst und schneller durch die Map scrollst, so dass er viele Tiles laden muss, dann bricht die Performance merklich ein.

Ich empfehle dir, die Serverkommunikation und Bildmanipulationen asynchron zu machen (mit Thread), so dass im Mainthread nur noch das finale Bild in die Gadgets packen muss, sobald es fertig ist. Wenn dann die Internetverbindung hakelt oder sehr viel geladen/gerendert werden muss, bleibt die GUI trotzdem flüssig. :wink:

_________________
return;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Outdoor Routenplaner - Eric's Topotracker
BeitragVerfasst: 25.02.2018 00:52 
Offline
PureBasic Team
Benutzeravatar

Registriert: 11.09.2004 16:35
Wohnort: Saxony / Deutscheinsiedel
Danke, DarkSoul :allright:

Ich komme gerade nicht dazu, das selbst in meinem Projektcode zu testen, aber ich habs im engl. Forum-Thread zu PBMap schonmal weiter gegeben... 8)

_________________
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye