Hello, Okay, my apologies, I misunderstood the signal handling code. I thought you were doing something like self_writer.write_nonblock(signal) instead. This is what I thought of initially because I was still thinking in the context of C (where signals are not deferred and allocating new space on a queue in a signal handler would be unsafe) instead of in the context of Ruby where Ruby's signals are deferred. Incidentally, MRI's signal handler implementation in signal.c appears to be broken in several ways but that is a separate topic for a separate place.
Thank you, Steven Stewart-Gallus
