Flowdock
sync_lock(m = EX) public

No documentation

This method has no description. You can help the Ruby community by adding new notes.

Hide source
# File lib/sync.rb, line 140
  def sync_lock(m = EX)
    return unlock if m == UN

    until (Thread.critical = true; sync_try_lock_sub(m))
      if sync_sh_locker[Thread.current]
        sync_upgrade_waiting.push [Thread.current, sync_sh_locker[Thread.current]]
        sync_sh_locker.delete(Thread.current)
      else
        sync_waiting.push Thread.current
      end
      Thread.stop
    end
    Thread.critical = false
    self
  end
Register or log in to add new notes.