On Friday, 6 February 2015 at 19:40:44 UTC, Danny wrote:
Hi,
if I want to clean up inside a signal handler and then exit the
process (as it would have without me handling it), what do I do?
Can I exit() inside a signal handler or should I use a more
direct "quit now" function? (after all, it could have been in
the middle of relinking the free list when the signal arrived)
I'm using a basic C-style sigaction with core.sys.posix.signal
and calling std.c.stdlib:exit. For context, I'm performing serial
communication with an actual device so the signal may come when
my code is blocked in an vendor API call or on an underlying
syscall. I have very little state so I'm doing equally little
beside freeing extern handles. Setting a global flag and testing
it didn't really prove adequate and littered the checks
everywhere so I'm thinking now of leveraging std.signals but I'm
not sure that will be reliable.