code: def ask(self):
          
          with self.mutex:
              if not len(self.queue): 
                  raise Empty
              utcnow = dt.datetime.utcnow()
              if self.queue[0][0] <= utcnow:
                  self.ready.notify()
                  return 0
              return (self.queue[0][0] - utcnow).total_seconds()
docs: Return the wait time in seconds required to retrieve the
          item currently at the head of the queue.
          
          Note that there is no guarantee that a call to `get()` will
          succeed even if `ask()` returns 0. By the time the calling
          thread reacts, other threads may have caused a different
          item to be at the head of the queue.