class EventMachine::Synchrony::Thread::Mutex

def lock

def lock
  current = Fiber.current
  raise FiberError if @waiters.include?(current)
  @waiters << current
  Fiber.yield unless @waiters.first == current
  true
end