code: def pause(self):
          
          # 1. stop the plumbing thread by raising a StopIteration on a stride 
          #    boundary
          if self._started.isSet() and \
             self._running.isSet() and \
             not self._pausing.isSet():
              self._pausing.set()
              self._plunger.join()
              del self._plunger
              self._pausing.clear()
              self._running.clear()
          else:
              raise PlumberError
docs: Pauses a running pipeline. This will stop retrieving results from the 
          pipeline. Parallel parts of the pipeline will stop after the ``NuMap`` 
          buffer is has been filled. A paused pipeline can be run or stopped.