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

Reply via email to