func (r *Runner) ResumeAll() (err error) {
	debugf("Resuming all unfinished transactions")
	iter := r.tc.Find(bson.D{{"s", bson.D{{"$in", []state{tpreparing, tprepared, tapplying}}}}}).Iter()
	var t transaction
	for iter.Next(&t) {
		if t.State == tapplied || t.State == taborted {
			continue
		}
		debugf("Resuming %s from %q", t.Id, t.State)
		if err := flush(r, &t); err != nil {
			return err
		}
		if !t.done() {
			panic(fmt.Errorf("invalid state for %s after flush: %q", &t, t.State))
		}
	}
	return nil
}
func (r *Runner) ResumeAll() (err error) {
	debugf("Resuming all unfinished transactions")
	iter := r.tc.Find(bson.D{{"s", bson.D{{"$in", []state{tpreparing, tprepared, tapplying}}}}}).Iter()
	var t transaction
	for iter.Next(&t) {
		if t.State == tapplied || t.State == taborted {
			continue
		}
		debugf("Resuming %s from %q", t.Id, t.State)
		if err := flush(r, &t); err != nil {
			return err
		}
		if !t.done() {
			panic(fmt.Errorf("invalid state for %s after flush: %q", &t, t.State))
		}
	}
	return nil
}
func ( r * Runner ) ResumeAll ( ) ( err error ) { debugf ( " " ) iter := r . tc . Find ( bson . D { { " " , bson . D { { " " , [ ] state { tpreparing , tprepared , tapplying } } } } } ) . Iter ( ) var t transaction for iter . Next ( & t ) { if t . State == tapplied || t . State == taborted { continue } debugf ( " " , t . Id , t . State ) if err := flush ( r , & t ) ; err != nil { return err } if ! t . done ( ) { panic ( fmt . Errorf ( " " , & t , t . State ) ) } } return nil }
// ResumeAll resumes all pending transactions. All ErrAborted errors
// from individual transactions are ignored.
ResumeAll resumes all pending transactions . All ErrAborted errors from individual transactions are ignored .