dragon.native.semaphore
The Dragon native implementation of the classical semaphore synchronization object.
The API follows the Python Multiprocessing API of Semaphore and extends it with
a get_value()
method.
Classes
This class implements Semaphore objects on top of Dragon channels. |
- class Semaphore
Bases:
object
This class implements Semaphore objects on top of Dragon channels. We use a Dragon native Lock to protect a channel with a single entry that is used to count the number of acquire and release calls. We extend the standard API with a get_value method to ask the Semaphore for the current value.
- __init__(value: int = 1, *, m_uid: int = 4611686018427387904, bounded=False)
Create a Semaphore object that can be shared across Dragon processes.
- acquire(blocking: bool = True, timeout: float | None = None) bool
Acquire the Semaphore, decrementing the counter, blocking the other processes, if the counter is 0.