@@ -13,6 +13,7 @@ import (
1313 "fmt"
1414 "reflect"
1515 "sync"
16+ "sync/atomic"
1617 "testing"
1718 "time"
1819
@@ -513,29 +514,19 @@ func TestSessionsProse(t *testing.T) {
513514 mt .Run ("20 Drivers do not gossip $clusterTime on SDAM commands" , func (mt * mtest.T ) {
514515 // heartbeatStarted := make(chan struct{})
515516 // heartbeatSucceeded := make(chan struct{})
516- // clusterTimeAdvanced := make(chan struct{})
517+ var clusterTimeAdvanced uint32
517518 serverMonitor := & event.ServerMonitor {
518519 ServerHeartbeatStarted : func (e * event.ServerHeartbeatStartedEvent ) {
519520 fmt .Println ("Server heartbeat started:" , e .ConnectionID )
520- // select {
521- // case _, ok := <-clusterTimeAdvanced:
522- // if !ok {
523- // heartbeatStarted <- struct{}{}
524- // }
525- // default:
526- // // NOOP
527- // }
521+ if atomic .LoadUint32 (& clusterTimeAdvanced ) == 1 {
522+ fmt .Println ("ServerHeartbeatStartedEvent: cluster time advanced" )
523+ }
528524 },
529525 ServerHeartbeatSucceeded : func (e * event.ServerHeartbeatSucceededEvent ) {
530526 fmt .Println ("Server heartbeat succeeded:" , e .ConnectionID , e .Duration , e .Reply )
531- // select {
532- // case _, ok := <-clusterTimeAdvanced:
533- // if !ok {
534- // heartbeatSucceeded <- struct{}{}
535- // }
536- // default:
537- // // NOOP
538- // }
527+ if atomic .LoadUint32 (& clusterTimeAdvanced ) == 1 {
528+ fmt .Println ("ServerHeartbeatSucceededEvent: cluster time advanced" )
529+ }
539530 },
540531 }
541532
@@ -571,7 +562,7 @@ func TestSessionsProse(t *testing.T) {
571562 _ , err = mt .Client .Database ("test" ).Collection ("test" ).InsertOne (context .Background (), bson.D {{"advance" , "$clusterTime" }})
572563 require .NoError (mt , err , "expected no error inserting document, got: %v" , err )
573564
574- // close( clusterTimeAdvanced)
565+ atomic . StoreUint32 ( & clusterTimeAdvanced , 1 )
575566 // <-heartbeatStarted
576567 // <-heartbeatSucceeded
577568 time .Sleep (3 * time .Second )
0 commit comments