@@ -411,7 +411,7 @@ func (c *baseClient) pipelineProcessCmds(
411411 ctx context.Context , cn * pool.Conn , cmds []Cmder ,
412412) (bool , error ) {
413413 err := cn .WithWriter (ctx , c .opt .WriteTimeout , func (wr * proto.Writer ) error {
414- return writeCmd (wr , cmds ... )
414+ return writeCmds (wr , cmds )
415415 })
416416 if err != nil {
417417 return true , err
@@ -453,12 +453,22 @@ func (c *baseClient) txPipelineProcessCmds(
453453 return false , err
454454}
455455
456+ var (
457+ multi = NewStatusCmd ("multi" )
458+ exec = NewSliceCmd ("exec" )
459+ )
460+
456461func txPipelineWriteMulti (wr * proto.Writer , cmds []Cmder ) error {
457- multiExec := make ([]Cmder , 0 , len (cmds )+ 2 )
458- multiExec = append (multiExec , NewStatusCmd ("MULTI" ))
459- multiExec = append (multiExec , cmds ... )
460- multiExec = append (multiExec , NewSliceCmd ("EXEC" ))
461- return writeCmd (wr , multiExec ... )
462+ if err := writeCmd (wr , multi ); err != nil {
463+ return err
464+ }
465+ if err := writeCmds (wr , cmds ); err != nil {
466+ return err
467+ }
468+ if err := writeCmd (wr , exec ); err != nil {
469+ return err
470+ }
471+ return nil
462472}
463473
464474func txPipelineReadQueued (rd * proto.Reader , cmds []Cmder ) error {
0 commit comments