semaphore, message - prod-cons