code: func (d *BoundDistributor) Run(desc *dm.Quest_Desc, exAuth *dm.Execution_Auth, prev *dm.JsonResult) (tok distributor.Token, pollbackTime time.Duration, err error) {
  	if err = d.RunError; err != nil {
  		return
  	}
  	pollbackTime = d.PollbackTime
  
  	tok = MakeToken(exAuth.Id)
  
  	tsk := &DistributorData{
  		Auth:  exAuth,
  		Desc:  desc,
  		State: prev,
  	}
  	tsk.NotifyTopic, tsk.NotifyAuth, err = d.cfg.PrepareTopic(d.c, exAuth.Id)
  	panicIf(err)
  
  	d.Lock()
  	defer d.Unlock()
  	if d.tasks == nil {
  		d.tasks = map[distributor.Token]*DistributorData{}
  	}
  	d.tasks[tok] = tsk
  	return
  }
docs: // Run implements distributor.D