create semaphores always, but use is optional