@@ -452,7 +452,7 @@ func (s *subscription) ReceiveBatch(ctx context.Context, maxMessages int) ([]*dr
452452 return nil , s .linkErr
453453 }
454454
455- // ReceiveOne will block until ctx is Done; we want to return after
455+ // ReceiveOne will block until rctx is Done; we want to return after
456456 // a reasonably short delay even if there are no messages. So, create a
457457 // sub context for the RPC.
458458 rctx , cancel := context .WithTimeout (ctx , listenerTimeout )
@@ -462,7 +462,7 @@ func (s *subscription) ReceiveBatch(ctx context.Context, maxMessages int) ([]*dr
462462 // that aren't necessarily finished when Receive returns, which causes
463463 // data races if Receive is called again quickly. ReceiveOne is more
464464 // straightforward.
465- var message * driver.Message
465+ var messages [] * driver.Message
466466 err := s .sbSub .ReceiveOne (rctx , servicebus .HandlerFunc (func (_ context.Context , sbmsg * servicebus.Message ) error {
467467 metadata := map [string ]string {}
468468 for key , value := range sbmsg .GetKeyValues () {
@@ -476,19 +476,19 @@ func (s *subscription) ReceiveBatch(ctx context.Context, maxMessages int) ([]*dr
476476 if sbmsg .SystemProperties != nil && sbmsg .SystemProperties .PartitionID != nil {
477477 partitionID = * sbmsg .SystemProperties .PartitionID
478478 }
479- message = & driver.Message {
479+ messages = append ( messages , & driver.Message {
480480 Body : sbmsg .Data ,
481481 Metadata : metadata ,
482482 AckID : & partitionAckID {partitionID , sbmsg .LockToken },
483483 AsFunc : messageAsFunc (sbmsg ),
484- }
484+ })
485485 return nil
486486 }))
487487 // Mask rctx timeouts, they are expected if no messages are available.
488488 if err == rctx .Err () {
489489 err = nil
490490 }
491- return [] * driver. Message { message } , err
491+ return messages , err
492492}
493493
494494func messageAsFunc (sbmsg * servicebus.Message ) func (interface {}) bool {
0 commit comments