@@ -66,7 +66,7 @@ def add(host)
66
66
if !addresses . include? ( address )
67
67
if addition_allowed? ( address )
68
68
log_debug ( [ "Adding #{ address . to_s } to the cluster." ] )
69
- @addresses_update . synchronize { @addresses . push ( address ) }
69
+ @update_lock . synchronize { @addresses . push ( address ) }
70
70
server = Server . new ( address , self , event_listeners , options )
71
71
@servers_update . synchronize { @servers . push ( server ) }
72
72
server
@@ -85,12 +85,11 @@ def add(host)
85
85
# @since 2.0.0
86
86
def initialize ( seeds , options = { } )
87
87
@addresses = [ ]
88
- @addresses_update = Mutex . new
89
88
@servers = [ ]
90
- @servers_update = Mutex . new
91
89
@event_listeners = Event ::Listeners . new
92
90
@options = options . freeze
93
91
@topology = Topology . initial ( seeds , options )
92
+ @update_lock = Mutex . new
94
93
95
94
subscribe_to ( Event ::DESCRIPTION_CHANGED , Event ::DescriptionChanged . new ( self ) )
96
95
subscribe_to ( Event ::PRIMARY_ELECTED , Event ::PrimaryElected . new ( self ) )
@@ -150,11 +149,9 @@ def remove(host)
150
149
log_debug ( [ "#{ host } being removed from the cluster." ] )
151
150
address = Address . new ( host )
152
151
removed_servers = @servers . select { |s | s . address == address }
153
- @servers_update . synchronize { @servers = @servers - removed_servers }
152
+ @update_lock . synchronize { @servers = @servers - removed_servers }
154
153
removed_servers . each { |server | server . disconnect! } if removed_servers
155
- @addresses_update . synchronize do
156
- @addresses . reject! { |addr | addr == address }
157
- end
154
+ @update_lock . synchronize { @addresses . reject! { |addr | addr == address } }
158
155
end
159
156
160
157
# Force a scan of all known servers in the cluster.
@@ -256,15 +253,15 @@ def addition_allowed?(address)
256
253
end
257
254
258
255
def servers_list
259
- @servers_update . synchronize do
256
+ @update_lock . synchronize do
260
257
@servers . reduce ( [ ] ) do |servers , server |
261
258
servers << server
262
259
end
263
260
end
264
261
end
265
262
266
263
def addresses_list
267
- @addresses_update . synchronize do
264
+ @update_lock . synchronize do
268
265
@addresses . reduce ( [ ] ) do |addresses , address |
269
266
addresses << address
270
267
end
0 commit comments