When sending a signal that raises an exception (e.g SIGTERM) while waiting on a NIO `select` on the main thread, behavior is either: * Raise the correct SignalException * Fail to raise the correct SignalException but exit with a status code that indicates that SIGTERM was processed at some level. * Fail to raise the correct SignalException and exit with a normal status code. This only reproduces with libev. My test fails for Java because I'm using `fork` which isn't supported in JRuby. You can see this reproduced in: https://github.com/socketry/nio4r/pull/133