func()

in gdbclient/gdbclient.go [166:189]


func (c *baseClient) BatchSubmit(batchSubmit func(ClientShell) error) error {
	if !c.session {
		return errors.New("batch submit is not allowed in non-session client")
	}

	if err := c.transaction(_OPEN); err != nil {
		return err
	}

	err := batchSubmit(c)
	if err == nil {
		err = c.transaction(_COMMIT)
	}

	// rollback submit errors, include batch submit and commit
	if err != nil {
		err2 := c.transaction(_ROLLBACK)
		if err2 != nil {
			internal.Logger.Error("unstable transaction status as rollback failed", zap.Error(err), zap.Time("time", time.Now()))
			return err2
		}
	}
	return err
}