class EventMachine::Synchrony::MongoTimeoutHandler

def self.timeout(op_timeout, ex_class, &block)

def self.timeout(op_timeout, ex_class, &block)
  f = Fiber.current
  timer = EM::Timer.new(op_timeout) { f.resume(nil) }
  res = block.call
  timer.cancel
  res
end