🎉 Initial Release 🎉
First stable release of named-semaphores
, a high-level Python API for managing POSIX IPC named semaphores. This release provides robust, cross-platform semaphore functionality with a Pythonic interface, designed for simplicity and flexibility in multi-process environments.
Features
- Named Semaphore Creation:
- Create, link to, or manage named semaphores with customizable behaviors:
RAISE_IF_EXISTS
: Raise an error if the semaphore already exists.LINK_OR_CREATE
: Link to an existing semaphore or create a new one.RAISE_IF_NOT_EXISTS
: Raise an error if the semaphore does not exist.DELETE_AND_CREATE
: Delete an existing semaphore and create a new one.
- Create, link to, or manage named semaphores with customizable behaviors:
- Semaphore Operations:
- Acquire and release semaphores, with optional support for non-blocking and timeout-based acquisition (platform-dependent).
- Query semaphore value (if supported on the platform).
- Pythonic Context Management:
- Use the semaphore as a context manager for automatic acquisition and release.
- Automatic Cleanup:
- Option to automatically unlink semaphores on object deletion or garbage collection.
- Cross-Platform Support:
- Compatible with Linux, macOS (with limitations), and Windows (via Cygwin).
Dependencies
- posix_ipc: Provides the underlying bindings for POSIX IPC.
Notes
- This is the first stable release; subsequent updates may refine or expand functionality based on user feedback.
- Please report issues or suggestions via the GitHub Issues page.