Sha256: cff1f7b457235794b5f59ba35e456f715afb60300890f2168573a07eccc3d60a
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
# frozen_string_literal: true module Dynflow module Semaphores class Abstract # Tries to get ticket from the semaphore # Returns true if thing got a ticket # Rturns false otherwise and puts the thing into the semaphore's queue def wait(thing) raise NotImplementedError end # Gets first object from the queue def get_waiting raise NotImplementedError end # Checks if there are objects in the queue def has_waiting? raise NotImpelementedError end # Returns n tickets to the semaphore def release(n = 1) raise NotImplementedError end # Saves the semaphore's state to some persistent storage def save raise NotImplementedError end # Tries to get n tickets # Returns n if the semaphore has free >= n # Returns free if n > free def get(n = 1) raise NotImplementedErrorn end # Requests all tickets # Returns all free tickets from the semaphore def drain raise NotImplementedError end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dynflow-1.9.0 | lib/dynflow/semaphores/abstract.rb |
dynflow-1.8.3 | lib/dynflow/semaphores/abstract.rb |