Conditional Variable Vs Semaphore