code: def stop(self, grace_period=None):
          
          if not self.is_alive:
              return True
  
          with self._operational_lock:
              self._queue.put_nowait(_WORKER_TERMINATOR)
  
              if grace_period is not None:
                  print("Waiting up to %d seconds." % (grace_period,), file=sys.stderr)
  
              self._thread.join(timeout=grace_period)
  
              # Check this before disowning the thread, because after we disown
              # the thread is_alive will be False regardless of if the thread
              # exited or not.
              success = not self.is_alive
  
              self._thread = None
  
              return success
docs: Signals the background thread to stop.
  
          This does not terminate the background thread. It simply queues the
          stop signal. If the main process exits before the background thread
          processes the stop signal, it will be terminated without finishing
          work. The ``grace_period`` parameter will give the background
          thread some time to finish processing before this function returns.
  
          :type grace_period: float
          :param grace_period: If specified, this method will block up to this
              many seconds to allow the background thread to finish work before
              returning.
  
          :rtype: bool
          :returns: True if the thread terminated. False if the thread is still
              running.