code: def _plunge(tasks, pausing, finish):
          
          # If no result received either not started or start & stop
          # could have been called before the plunger thread
          while True:
              if pausing():
                  tasks.stop()
              try:
                  tasks.next()
              except StopIteration:
                  finish(pausing())
                  break
docs: (internal) calls the next method of weaved tasks until they are finished
          or The ``Plumber`` instance is stopped see: ``Dagger.chinkup``.