Hallo Michael_K,
A worker is said to be an active needed worker if any of its owners are either Document objects that are fully active or active needed workers.
A worker is said to be a protected worker if it is an active needed worker and either it has outstanding timers, database transactions, or network connections
Das ist alles Spec-gobbledygook, bestehend aus eine Menge von selbsterfundenen Begriffen, die kreuz und quer aufeinander verweisen. D.h. man hat schnell mal nur die Hälfte der relevanten Teile gelesen. Mir werden diese Begriffe NICHT klar.
Was ich aber beobachten kann, dass der FF keine Probleme mehr macht, wenn man dem Thread nach dem Senden der Antwort eine gewisse Schonfrist gewährt. Ich muss im FF nochmal betrachten, wie der die Worker-Threads abräumt. Chrome tut es nicht, da hast Du leider recht, die Subworker bleiben hängen bis entweder der MainWorker gekillt wird oder bis der Mainworker sie explizit killt.
Leider kann man die entscheidenden Informationen auch nicht sehen. Z.B. das closing-Flag, von dem die Spec spricht. Das ist intern und lässt sich nicht debuggen.
Eins solltest Du aber auf jeden Fall noch ändern: terminate() ist die Notlösung für wildgewordene Worker. Eigentlich sollte ein Worker, der weiß, dass er fertig ist, self.close() aufrufen.
Rolf
sumpsi - posui - obstruxi