method
sync_lock
sync_lock(m = EX)
public
Hide source
# File lib/sync.rb, line 138 def sync_lock(m = EX) return unlock if m == UN while true @sync_mutex.synchronize do if sync_try_lock_sub(m) return self else 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 @sync_mutex.sleep end end end self end