docs: def Sleep(self, timeout):
      """Sleeps the calling thread with heartbeat."""
      if self.nanny_controller:
        self.nanny_controller.Heartbeat()
  
      # Split a long sleep interval into 1 second intervals so we can heartbeat.
      while timeout > 0:
        time.sleep(min(1., timeout))
        timeout -= 1
        # If the output queue is full, we are ready to do a post - no
        # point in waiting.
        if self._out_queue.Full():
          return
  
        if self.nanny_controller:
          self.nanny_controller.Heartbeat()