semaphore.go