proxy: use a semaphore for tracking availability