On Oct 23, 2012, at 11:25 AM, Peter Sommerfeld <nore...@rubrica.at> wrote:

> Hi!
> 
> I'm new to D an not a native speaker so I may misunderstand
> the following sentence of the thread documentation.
> 
> "final @property void isDaemon(bool val);
> 
> Sets 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."
> 
> That sounds to me as if the daemon will be finished when the
> main-thread has finished. But in my understanding daemons will
> survive the termination of the main-thread and be killed by
> a signal (KILL, SIGTERM etc) or finish itself.
> 
> I think that is the case here too. Is that true ?

In D, the main thread will join all non-daemon threads before calling static 
dtors or performing any other cleanup.  Daemon threads will continue to run 
until the process exits.  So daemon threads are basically just C-style kernel 
threads.


> Another question: I cannot find a reference how D deals with
> OS SIGNALS, especially about differences between the platform
> (*nix; Windows, Mac). Can you explain or point me to the
> documentation?

The GC in D uses SIGUSR1 and SIGUSR2 to coordinate collections on Posix OSes 
(except for OSX).  You're free to use any other signal just as you would in C.

Reply via email to