[vdr] 1.3.27 with NPTL: (wapd) always crashes at shutdown

Udo Richter udo_richter at gmx.de
Mon Jun 20 15:47:03 CEST 2005


Ville Skyttä wrote:
> The culprit seems to be cWapServer::Action() in server.c, which I tried
> to convert to use cCondWait::SleepMs() instead of usleep(), and added an
> "active" boolean into the class that would control the while loop in
> Action() and that would be set to false in the destructor, but those
> changes did not help.

(without taking any close look at the source code)
I assume this is a main while loop in a cThread. Stopping a thread from
within the destructor is quite risky, as the object is already partially
destructed, and if you dont explicitly wait for the thread to finish,
the object may be gone before the thread ends.

The best way is to stop the thread before the object gets destroyed,
using some thread.Stop(). The right place for stopping threads is in
cPlugin::Stop().

Cheers,

Udo



More information about the vdr mailing list