@@ -512,20 +512,32 @@ func TestSessionsProse(t *testing.T) {
512
512
})
513
513
514
514
mt .Run ("20 Drivers do not gossip $clusterTime on SDAM commands" , func (mt * mtest.T ) {
515
- // heartbeatStarted := make(chan struct{})
516
- // heartbeatSucceeded := make(chan struct{})
515
+ heartbeatStarted := make (chan struct {})
516
+ heartbeatSucceeded := make (chan struct {})
517
517
var clusterTimeAdvanced uint32
518
518
serverMonitor := & event.ServerMonitor {
519
519
ServerHeartbeatStarted : func (e * event.ServerHeartbeatStartedEvent ) {
520
520
fmt .Println ("Server heartbeat started:" , e .ConnectionID )
521
521
if atomic .LoadUint32 (& clusterTimeAdvanced ) == 1 {
522
522
fmt .Println ("ServerHeartbeatStartedEvent: cluster time advanced" )
523
+ select {
524
+ case heartbeatStarted <- struct {}{}:
525
+ // NOOP
526
+ default :
527
+ // NOOP
528
+ }
523
529
}
524
530
},
525
531
ServerHeartbeatSucceeded : func (e * event.ServerHeartbeatSucceededEvent ) {
526
532
fmt .Println ("Server heartbeat succeeded:" , e .ConnectionID , e .Duration , e .Reply )
527
533
if atomic .LoadUint32 (& clusterTimeAdvanced ) == 1 {
528
534
fmt .Println ("ServerHeartbeatSucceededEvent: cluster time advanced" )
535
+ select {
536
+ case heartbeatSucceeded <- struct {}{}:
537
+ // NOOP
538
+ default :
539
+ // NOOP
540
+ }
529
541
}
530
542
},
531
543
}
@@ -563,9 +575,8 @@ func TestSessionsProse(t *testing.T) {
563
575
require .NoError (mt , err , "expected no error inserting document, got: %v" , err )
564
576
565
577
atomic .StoreUint32 (& clusterTimeAdvanced , 1 )
566
- // <-heartbeatStarted
567
- // <-heartbeatSucceeded
568
- time .Sleep (3 * time .Second )
578
+ <- heartbeatStarted
579
+ <- heartbeatSucceeded
569
580
570
581
res , err = client .Database ("admin" ).RunCommand (context .Background (), bson.D {
571
582
{"ping" , 1 },
0 commit comments