module None
No timing constraints - tasks can execute immediately.
This strategy provides no time-based limiting, suitable for pure concurrency control without rate limiting.
Definitions
def self.maximum_cost
Maximum cost this timing strategy can support (unlimited for no constraints).
Signature
-
returns
Float Infinity since there are no timing constraints.
Implementation
def self.maximum_cost
Float::INFINITY
end
def self.can_acquire?(cost = 1)
Check if a task can be acquired (always true for no timing constraints).
Signature
-
parameter
costNumeric Cost of the operation (ignored for no timing constraints).
-
returns
Boolean Always true.
Implementation
def self.can_acquire?(cost = 1)
true
end
def self.acquire(cost = 1)
Record that a task was acquired (no-op for this strategy).
Signature
-
parameter
costNumeric Cost of the operation (ignored for no timing constraints).
Implementation
def self.acquire(cost = 1)
# No state to update
end
def self.wait(mutex, deadline = nil, cost = 1)
Wait for timing constraints to be satisfied (no-op for this strategy).
Signature
-
parameter
mutexMutex Mutex to release during sleep (ignored for no timing constraints).
-
parameter
deadlineDeadline, nil Deadline for timeout (ignored for no timing constraints).
-
parameter
costNumeric Cost of the operation (ignored for no timing constraints).
-
returns
Boolean Always true since there are no timing constraints.
Implementation
def self.wait(mutex, deadline = nil, cost = 1)
# No waiting needed - return immediately
true
end
def self.statistics
Get current timing strategy statistics.
Signature
-
returns
Hash Statistics hash with current state.
Implementation
def self.statistics
{
name: "None"
}
end