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.

Reply via email to