method

sync_lock

v1_8_6_287 - Show latest stable - Class: Sync_m
sync_lock(m = EX)
public

No documentation available.

# 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