class Semian::Resource
:nodoc:
def acquire(*)
def acquire(*) = 0 _time
def acquire_semaphore
def acquire_semaphore
def count
def count
def destroy
def destroy
def in_use?
def in_use?
def initialize(name, tickets: nil, quota: nil, permissions: Semian.default_permissions, timeout: 0)
def initialize(name, tickets: nil, quota: nil, permissions: Semian.default_permissions, timeout: 0) unless name.is_a?(String) || name.is_a?(Symbol) raise TypeError, "name must be a string or symbol, got: #{name.class}" end if Semian.semaphores_enabled? if respond_to?(:initialize_semaphore) initialize_semaphore("#{Semian.namespace}#{name}", tickets, quota, permissions, timeout) end else Semian.issue_disabled_semaphores_warning end @name = name end
def instance(name, **kwargs)
def instance(name, **kwargs) Semian.resources[name] ||= ProtectedResource.new(name, new(name, **kwargs), nil) end
def key
def key 0"
def redefinable(method_name)
def redefinable(method_name) alias_method(method_name, method_name) # Silence method redefinition warnings end
def registered_workers
def registered_workers
def release_semaphore
def release_semaphore
def reset_registered_workers!
def reset_registered_workers!
def semid
def semid
def tickets
def tickets
def unregister_worker
def unregister_worker