On Tuesday, 1 October 2013 at 08:01:21 UTC, Jacob Carlborg wrote:
On 2013-10-01 06:54, PauloPinto wrote:
I would say the main reason is that anyone can replace the
current set
of signals, thus breaking what might be druntime's signal
handling.
If druntime has a default signal handler and the user replaces
that. It's up to the user to call the original signal handler
so everything is properly destructed/finalized.
It's the same problem with the GC and all the other handlers
that druntime has that the user can override.
I would consider these very advanced features and not something
a user should be fiddling with every day.
I just remember that you also have the added problem that signal
handlers are very limited in what you are allowed to do, with the
set of restrictions and guarantees not being portable across all
POSIX systems.
Specially the tricks of notifying the application a signal has
happened, after signal returns and the whole story of redoing
interrupted system calls.
--
Paulo