code: def wait(self, callback=None):
          
          if self.is_master():
              return
  
          worker = self.comm.rank
          status = MPI.Status()
          while True:
              log.log(_VERBOSE, "Worker {0} waiting for task".format(worker))
  
              task = self.comm.recv(source=self.master, tag=MPI.ANY_TAG,
                                    status=status)
  
              if task is None:
                  log.log(_VERBOSE, "Worker {0} told to quit work".format(worker))
                  break
  
              func, arg = task
              log.log(_VERBOSE, "Worker {0} got task {1} with tag {2}"
                      .format(worker, arg, status.tag))
  
              result = func(arg)
  
              log.log(_VERBOSE, "Worker {0} sending answer {1} with tag {2}"
                      .format(worker, result, status.tag))
  
              self.comm.ssend(result, self.master, status.tag)
  
          if callback is not None:
              callback()
docs: Tell the workers to wait and listen for the master process. This is
          called automatically when using :meth:`MPIPool.map` and doesn't need to
          be called by the user.