def run(self):
<EOL>if self._started.isSet() andnot self._running.isSet() andnot self._pausing.isSet() andnot self._finished.isSet():<EOL><INDENT>stride = <NUM_LIT:1> <EOL>tasks = self.get_outputs()<EOL>wtasks = _Weave(tasks, repeats=stride)<EOL>self._plunger = Thread(target=self._plunge, args=(wtasks,self._pausing.isSet, self._finish))<EOL>self._plunger.deamon = True<EOL>self._plunger.start()<EOL>self._running.set()<EOL><DEDENT>else:<EOL><INDENT>raise PlumberError<EOL><DEDENT>
Executes a started pipeline by pulling results from it's output 
``Pipers``. Processing nodes i.e. ``Pipers`` with the ``track`` 
attribute set ``True`` will have their returned results stored within 
the ``Dagger.stats['pipers_tracked']`` dictionary. A running pipeline 
can be paused.