Implements named semaphores from the 'boost' 'C++' library <https://www.boost.org/>. A semaphore object is shared amongst several processes. This integer value can be safely incremented or decremented by each processes. Processes can also wait (blocking) for the value to become non-zero.
copied from cf-staging / r-semaphore