code: def _stop(self):
          
          if self._started.isSet():
              # join threads
              self._pool_getter.join()
              self._pool_putter.join()
              for worker in self.pool:
                  worker.join()
              # remove threads  
              del self._pool_putter
              del self._pool_getter
              del self.pool
              # remove results
              self._tasks = []
              self._tasks_tracked = {}
              # virgin variables
              self._stopping.clear()
              self._started.clear()
docs: (internal) stops input and output pool queue manager threads.