module Kernel

def sleep(sleep_time)

Monkey-patch
def sleep(sleep_time)
  if Kernel.em_synchrony_sleep_hook &&
     EM.reactor_thread? &&
     !Thread.current[:em_synchrony_sleep_hook_called]
    begin
      Thread.current[:em_synchrony_sleep_hook_called] = true
      Kernel.em_synchrony_sleep_hook.call(sleep_time)
    ensure
      Thread.current[:em_synchrony_sleep_hook_called] = false
    end
  else
    orig_sleep(sleep_time)
  end
end