class Concurrent::MutexSemaphore
def try_acquire(permits = 1, timeout = nil)
def try_acquire(permits = 1, timeout = nil) Utility::NativeInteger.ensure_integer_and_bounds permits Utility::NativeInteger.ensure_positive permits acquired = synchronize do if timeout.nil? try_acquire_now(permits) else try_acquire_timed(permits, timeout) end end return acquired unless block_given? return unless acquired begin yield ensure release(permits) end end