Skip to content

Version 1.0.3

Latest
Compare
Choose a tag to compare
@johacks johacks released this 24 Nov 20:49

🎉 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.
  • 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.