@@ -48,6 +48,12 @@ static BSON_THREAD_FUN (srv_polling_run, topology_void)
4848 }
4949
5050 /* This will check if a scan is due. */
51+ if (!mongoc_topology_should_rescan_srv (topology )) {
52+ TRACE ("%s\n" , "topology ineligible for SRV polling, stopping" );
53+ bson_mutex_unlock (& topology -> mutex );
54+ break ;
55+ }
56+
5157 mongoc_topology_rescan_srv (topology );
5258
5359 /* Unlock and sleep until next scan is due, or until shutdown signalled.
@@ -142,7 +148,8 @@ _mongoc_topology_background_monitoring_start (mongoc_topology_t *topology)
142148 /* Reconcile to create the first server monitors. */
143149 _mongoc_topology_background_monitoring_reconcile (topology );
144150 /* Start SRV polling thread. */
145- if (mongoc_uri_get_service (topology -> uri )) {
151+ if (mongoc_topology_should_rescan_srv (topology )) {
152+ topology -> is_srv_polling = true;
146153 COMMON_PREFIX (thread_create )
147154 (& topology -> srv_polling_thread , srv_polling_run , topology );
148155 }
@@ -270,7 +277,6 @@ _mongoc_topology_background_monitoring_stop (mongoc_topology_t *topology)
270277{
271278 mongoc_server_monitor_t * server_monitor ;
272279 int i ;
273- bool is_srv_polling ;
274280
275281 BSON_ASSERT (!topology -> single_threaded );
276282
@@ -281,9 +287,8 @@ _mongoc_topology_background_monitoring_stop (mongoc_topology_t *topology)
281287 topology -> scanner_state = MONGOC_TOPOLOGY_SCANNER_SHUTTING_DOWN ;
282288 TRACE ("%s" , "background monitoring stopping" );
283289
284- is_srv_polling = NULL != mongoc_uri_get_service (topology -> uri );
285290 /* Signal SRV polling to shut down (if it is started). */
286- if (is_srv_polling ) {
291+ if (topology -> is_srv_polling ) {
287292 mongoc_cond_signal (& topology -> srv_polling_cond );
288293 }
289294
@@ -320,7 +325,7 @@ _mongoc_topology_background_monitoring_stop (mongoc_topology_t *topology)
320325 }
321326
322327 /* Wait for SRV polling thread. */
323- if (is_srv_polling ) {
328+ if (topology -> is_srv_polling ) {
324329 COMMON_PREFIX (thread_join ) (topology -> srv_polling_thread );
325330 }
326331
0 commit comments