message: call scheduler only if the task has to block
diff: @@ -115,10 +115,12 @@ impl Semaphore {
  }
  }
  - backoff.snooze();
  -
  + if backoff.is_completed() {
  // Switch to the next task.
  core_scheduler.reschedule();
  + } else {
  + backoff.snooze();
  + }
  }
  }
  