unzuverlässiges internet + datenupdate = hänger
-
- Gold Member
- Beiträge: 449
- Registriert: 21 Jan 2006, 16:02
- Wohnort: Wien
Re: unzuverlässiges internet + datenupdate = hänger
Moin uzi, frage an Dich. welchen virenscanner verwendest Du?
W10
Re: unzuverlässiges internet + datenupdate = hänger
office scan und nein, darauf habe ich keinen einfluss.
Re: unzuverlässiges internet + datenupdate = hänger
hab gerade mal ein paar min in den sourcen rumgekramt und ich bin ehrlich gesagt nicht sicher, ob DownloadManager.runDownload wirklich threadsafe ist. ich denke, es könnte hier durchaus passieren, dass der thread unterbrochen wird, wenn er gar nicht schläft. das wäre ansich kein problem, aber wenn das in einem ungünstigen moment passiert, nämlich direkt bevor der thread sich wieder für ewigkeiten schlafen legt, hat man evtl genau den von mir beobachteten zustand. nämlich dann, wenn das beim letzten aktiven dl passiert. dann kommt keine interruptedException mehr und der dl-thread schläft für 2^63 millisekunden. ich spare mir jetzt mal auszurechnen, wie viele jahre das sind .
vielleicht benutzt man besser thread.join? scheint mir sicherer...
[edit] http://stackoverflow.com/questions/7502 ... ng-threads <- auch ne schöne lösung für das problem mit nem thread pool, die möglicherweise auch gleich zu weniger code im tvb führt. immer ne gute idee das rad nicht neu zu erfinden.
vielleicht benutzt man besser thread.join? scheint mir sicherer...
[edit] http://stackoverflow.com/questions/7502 ... ng-threads <- auch ne schöne lösung für das problem mit nem thread pool, die möglicherweise auch gleich zu weniger code im tvb führt. immer ne gute idee das rad nicht neu zu erfinden.
Re: unzuverlässiges internet + datenupdate = hänger
Naja, wenn man sich die Historie des DownloadManagers ansiehst, dann wird man feststellen, dass der schon praktisch seit Beginn von TV-Browser nur ganz wenigen Änderungen unterlag. Und wenn etwas grundsätzlich funktioniert (also nur in Ausnahmefällen mal nicht) dann ändert man ja auch nichts. An anderen Stellen wird ja schon ein ThreadPool verwendet.
Bevor ich da jetzt große Änderungen vornehme, die wieder andere Probleme produzieren könnten, ist es das Einfachste die Wartezeit in den Sekundenbereich zu verlegen, dann wartet TV-Browser auch nicht ewig.
Bevor ich da jetzt große Änderungen vornehme, die wieder andere Probleme produzieren könnten, ist es das Einfachste die Wartezeit in den Sekundenbereich zu verlegen, dann wartet TV-Browser auch nicht ewig.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Unterstütze die Weiterentwicklung von TV-Browser
Re: unzuverlässiges internet + datenupdate = hänger
wenn das denn wirklich das problem ist... so ganz sicher bin ich mir bei so nebenläufigkeitsgeschichten ja nie. komisch auch, dass anscheinend nur ich das problem habe. und das hauptsächlich auf einem meiner rechner.
Re: unzuverlässiges internet + datenupdate = hänger
Eine weitere Möglichkeit gibt es noch:
mActiveThreadCount nutzt zwar nur ++ bzw. --, aber auch das ist nicht atomic.
Parallelität führt dann zu merkwürdigen Zuständen.
Wenn diese Variable dann !=0, dann wird trotz Interrupt weiter gewartet.
Dafür gibt es u.a. einen AtomicInteger.
@uzi:
Da spielen sehr viele Punkte rein - zumal für die o.g. Variable nur die Unterbrechung während des Increment/Decrement relevant ist.
Hintergrundlast, Taktfrequenzen und die Latenzen der Speicher sind da schon sehr Systemspezifisch.
Das ist aber schon eher ein Fall für die Chaostheorie.
@ds10:
Ich würde 2 Maßnahmen kombinieren:
1. mActiveThreadCount immer mit synchronized kapseln oder AtomicInteger nutzen
2. Wartezeit auf 1s runtersetzen.
-- v6ph1
mActiveThreadCount nutzt zwar nur ++ bzw. --, aber auch das ist nicht atomic.
Parallelität führt dann zu merkwürdigen Zuständen.
Wenn diese Variable dann !=0, dann wird trotz Interrupt weiter gewartet.
Dafür gibt es u.a. einen AtomicInteger.
@uzi:
Da spielen sehr viele Punkte rein - zumal für die o.g. Variable nur die Unterbrechung während des Increment/Decrement relevant ist.
Hintergrundlast, Taktfrequenzen und die Latenzen der Speicher sind da schon sehr Systemspezifisch.
Das ist aber schon eher ein Fall für die Chaostheorie.
@ds10:
Ich würde 2 Maßnahmen kombinieren:
1. mActiveThreadCount immer mit synchronized kapseln oder AtomicInteger nutzen
2. Wartezeit auf 1s runtersetzen.
-- v6ph1
Re: unzuverlässiges internet + datenupdate = hänger
Ich habe das jetzt einfach mal entsprechend geändert, mit 5 Sekunden Wartezeit und AtomicInteger.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Unterstütze die Weiterentwicklung von TV-Browser