scope(exit) and Ctrl-C
Patrick Schluter
Patrick.Schluter at bbox.fr
Sat Dec 2 11:32:17 UTC 2017
On Saturday, 2 December 2017 at 04:49:26 UTC, H. S. Teoh wrote:
> On Sat, Dec 02, 2017 at 04:38:29AM +0000, Adam D. Ruppe via
> Digitalmars-d-learn wrote:
>> [...]
>
> Signal handlers can potentially be invoked while inside a
> non-reentrant libc or OS function, so trying to do anything
> that (indirectly or otherwise) calls that function will cause
> havoc to your program. Also, while the signal handler is
> running, some (all?) further signals may be blocked, meaning
> that your program might miss an important signal if your sig
> handler takes too long to run. Furthermore, the signal may
> have happened in the middle of your own code, so race
> conditions may apply (e.g. if you're modifying global data in
> both).
>
> [...]
On Linux you can use signalfd() for that, but nice trick if you
want Posix portability.
More information about the Digitalmars-d-learn
mailing list