func (r *Runner) Resume(id bson.ObjectId) (err error) {
	t, err := r.load(id)
	if err != nil {
		return err
	}
	if !t.done() {
		debugf("Resuming %s from %q", t, t.State)
		if err := flush(r, t); err != nil {
			return err
		}
	}
	if t.State == taborted {
		return ErrAborted
	} else if t.State != tapplied {
		panic(fmt.Errorf("invalid state for %s after flush: %q", t, t.State))
	}
	return nil
}
func (r *Runner) Resume(id bson.ObjectId) (err error) {
	t, err := r.load(id)
	if err != nil {
		return err
	}
	if !t.done() {
		debugf("Resuming %s from %q", t, t.State)
		if err := flush(r, t); err != nil {
			return err
		}
	}
	if t.State == taborted {
		return ErrAborted
	} else if t.State != tapplied {
		panic(fmt.Errorf("invalid state for %s after flush: %q", t, t.State))
	}
	return nil
}
func ( r * Runner ) Resume ( id bson . ObjectId ) ( err error ) { t , err := r . load ( id ) if err != nil { return err } if ! t . done ( ) { debugf ( " " , t , t . State ) if err := flush ( r , t ) ; err != nil { return err } } if t . State == taborted { return ErrAborted } else if t . State != tapplied { panic ( fmt . Errorf ( " " , t , t . State ) ) } return nil }
// Resume resumes the transaction with id. It returns mgo.ErrNotFound
// if the transaction is not found. Otherwise, it has the same semantics
// of the Run method after the transaction is inserted.
Resume resumes the transaction with id . It returns mgo . ErrNotFound if the transaction is not found . Otherwise it has the same semantics of the Run method after the transaction is inserted .