Add a queued semaphore class