akonsu
akonsu

Reputation: 29538

need to check if eventmachine stop is scheduled

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?

Upvotes: 1

Views: 118

Answers (1)

Tim Potter
Tim Potter

Reputation: 2457

If you have a peek at the source code for the pure-Ruby implementation of the EventMachine class in lib/em/pure_ruby.rb there'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.

Upvotes: 1

Related Questions