Add logging to  semaphore/thread_controller/thread_sync instead std::cout