An instantiated ProcSem object represents a potential sequence of operations
that may be active or inactive, but can only be activated once at a time.
When the ProcSem is acquired it will yield a ProcCtx object that
represents ownership of the sequence of operations. The ProcSem will remain
in this "owned" state until the ProcCtx is dropped.
The idea is that a process, which may span several threads/tasks, passes the
ProcCtx object around for as long as a process is running to prohibit another
paralell instance to be launched.
A use-case for procsem is running an update process on an embedded system,
where a new firmware version needs to be uploaded to the device, then unpacked,
verified and finally installed. A ProcSem can be used to protect an entire
update sequence from launching more than once at a time.
Change log
The details of changes can always be found in the timeline, but for a high-level view of changes between released versions there's a manually maintained Change Log.
Project Status
procsem is experimental.