On 07-08-2012 21:38, Sean Kelly wrote:
On Aug 7, 2012, at 9:36 AM, David <d...@dav1d.de> wrote:
I have a threaded connection:
...
Since this is a daemon thread, I'd expect it to stop/terminate when the main
thread stops. This is not the case (it keeps running), is this a known bug and
how can I workaround this?
Daemon threads will keep running until the process terminates. Forcibly
halting them any earlier risks leaving mutexes they hold in a locked state,
etc, which could break shutdown and hang the app. Typically, you'll want to
have a shared module dtor communicate to any daemon threads that it's time for
them to halt, and block until a response is received if you want to ensure a
clean shutdown.
Huh? From thread.di:
/**
* Gets the daemon status for this thread. While the runtime will
wait for
* all normal threads to complete before tearing down the process,
daemon
* threads are effectively ignored and thus will not prevent the
process
* from terminating. In effect, daemon threads will be terminated
* automatically by the OS when the process exits.
*
* Returns:
* true if this is a daemon thread.
*/
final @property bool isDaemon();
I'm confused... shouldn't daemon threads die when the main thread dies
(which effectively exits the process)?
--
Alex Rønne Petersen
a...@lycus.org
http://lycus.org