RemoteSemaphore(n::Int, pid=myid())A RemoteSemaphore is a counting semaphore that lives on a particular process in order to control access to a resource from multiple processes.
It is implemented using the unexported Base.Semaphore stored inside a Future which is only accessed on the process it was initialized on.
Like Base.Semaphore, it implements acquire and release, and is not thread-safe.