ctrl+c and destructors

Sean Kelly sean at invisibleduck.org
Wed Oct 2 10:15:03 PDT 2013


On Oct 1, 2013, at 1:16 PM, Maxim Fomin <maxim at maxim-fomin.ru> wrote:
> 
> Druntime can catch SIGINT and throw the exception. This means that D runtime can be easily broken by silly C code which uses its own signal handlers. I didn't tested, but believe this is already the case with respect to SIGUSR1 and SIGUSR2 which are used by druntime, so any simple code hijacking the signals can break runtime. Linux signals handlers as error mechanism is a complete disaster.

Unix signal handlers in general are a complete disaster.  The core idea is good, but the Posix requirements surrounding them are so loose as to render them nearly unusable.

I wasn't aware of pthread_suspend and it appears to be quite new.  Does anyone know if it's implemented in Linux yet?  A StackThreads discussion I found from a few years ago said it isn't, but a lot can change in a few years.  I would absolutely love to do away with using signals for coordinating garbage collection wherever possible.


More information about the Digitalmars-d mailing list