https://stackoverflow.com/questions/8359322/how-to-share-semaphores-between-processes-using-shared-memory