In my code that runs on eventmachine, how do I know if EventMachine::stop has been called?
I need this so that in my deferrable I do not log error messages that result solely from closing a connection and thus are not interesting from the operations stand point.
Is the only way to monkey patch the code?
If you have a peek at the source code for the pure-Ruby implementation of the EventMachine class in
lib/em/pure_ruby.rbthere’s an instance variable defined called@stop_scheduled. It seems to be used internally to do exactly what you want to do – not perform some operations if we’re currently shutting down.Unfortunately this variable isn’t exposed as part of the EventMachine API so you can’t use it.
You might be stuck having to re-implement this kind of functionality yourself. Add a instance variable to the appropriate class(es)and have some guards around code that you don’t want executed if a shutdown is in progress.