class Semian::Resource
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