week 3: a customized semaphore