move request semaphore from globals to cls members