message: Call try_dequeue regardless of if signalled by semaphore or timeout
diff: @@ -70,14 +70,13 @@ void TaskScheduler::ExecuteTasksForever(bool *marker) {
  // loop until the marker is set to false
  while(*marker) {
  // wait for a signal with a timeout; the timeout allows us to periodically check
  - if (queue->semaphore.wait(TASK_TIMEOUT_USECS)) {
  + queue->semaphore.wait(TASK_TIMEOUT_USECS);
  if (queue->q.try_dequeue(task)) {
  task->Execute();
  task.reset();
  }
  }
  }
  -}
  static void ThreadExecuteTasks(TaskScheduler *scheduler, bool *marker) {
  scheduler->ExecuteTasksForever(marker);
  