A counting semaphore. Conceptually, a semaphore maintains a set of permits. Each #acquire blocks if necessary until a permit is available, and then takes it. Each #release adds a permit, potentially releasing a blocking acquirer. However, no actual permit objects are used; the Semaphore just keeps a count of the number available and acts accordingly. Alternatively, permits may be acquired within a block, and automatically released after the block finishes executing.
Instance Method Summary collapseAcquires the given number of permits from this semaphore, blocking until all are available.
Returns the current number of permits available in this semaphore.
Acquires and returns all permits that are immediately available.
Create a new Semaphore
with the initial count
.
Releases the given number of permits, returning them to the semaphore.
Acquires the given number of permits from this semaphore, only if all are available at the time of invocation or within timeout
interval.
Create a new Semaphore
with the initial count
.
161 162
# File 'lib/concurrent-ruby/concurrent/atomic/semaphore.rb', line 161 class Semaphore < SemaphoreImplementation endInstance Method Details #acquire(permits = 1) ⇒ nil, BasicObject
Acquires the given number of permits from this semaphore, blocking until all are available. If a block is given, yields to it and releases the permits afterwards.
is given, its return value is returned.
161 162
# File 'lib/concurrent-ruby/concurrent/atomic/semaphore.rb', line 161 class Semaphore < SemaphoreImplementation end#available_permits ⇒ Integer
Returns the current number of permits available in this semaphore.
161 162
# File 'lib/concurrent-ruby/concurrent/atomic/semaphore.rb', line 161 class Semaphore < SemaphoreImplementation end#drain_permits ⇒ Integer
Acquires and returns all permits that are immediately available.
161 162
# File 'lib/concurrent-ruby/concurrent/atomic/semaphore.rb', line 161 class Semaphore < SemaphoreImplementation end#release(permits = 1) ⇒ nil
Releases the given number of permits, returning them to the semaphore.
161 162
# File 'lib/concurrent-ruby/concurrent/atomic/semaphore.rb', line 161 class Semaphore < SemaphoreImplementation end#try_acquire(permits = 1, timeout = nil) ⇒ true, false, nil, BasicObject
Acquires the given number of permits from this semaphore, only if all are available at the time of invocation or within timeout
interval. If a block is given, yields to it if the permits were successfully acquired, and releases them afterward, returning the block's return value.
161 162
# File 'lib/concurrent-ruby/concurrent/atomic/semaphore.rb', line 161 class Semaphore < SemaphoreImplementation end
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4