@@ -66,10 +66,10 @@ 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 , event_listeners ,
71
71
options . merge ( slave_ok : @slave_ok ) )
72
- @servers_update . synchronize { @servers . push ( server ) }
72
+ @update_lock . synchronize { @servers . push ( server ) }
73
73
server
74
74
end
75
75
end
@@ -86,13 +86,12 @@ def add(host)
86
86
# @since 2.0.0
87
87
def initialize ( seeds , options = { } )
88
88
@addresses = [ ]
89
- @addresses_update = Mutex . new
90
89
@servers = [ ]
91
- @servers_update = Mutex . new
92
90
@event_listeners = Event ::Listeners . new
93
91
@options = options . freeze
94
92
@topology = Topology . initial ( seeds , options )
95
93
@slave_ok = @topology . single? unless options [ :read ]
94
+ @update_lock = Mutex . new
96
95
97
96
subscribe_to ( Event ::DESCRIPTION_CHANGED , Event ::DescriptionChanged . new ( self ) )
98
97
subscribe_to ( Event ::PRIMARY_ELECTED , Event ::PrimaryElected . new ( self ) )
@@ -152,11 +151,9 @@ def remove(host)
152
151
log_debug ( [ "#{ host } being removed from the cluster." ] )
153
152
address = Address . new ( host )
154
153
removed_servers = @servers . select { |s | s . address == address }
155
- @servers_update . synchronize { @servers = @servers - removed_servers }
154
+ @update_lock . synchronize { @servers = @servers - removed_servers }
156
155
removed_servers . each { |server | server . disconnect! } if removed_servers
157
- @addresses_update . synchronize do
158
- @addresses . reject! { |addr | addr == address }
159
- end
156
+ @update_lock . synchronize { @addresses . reject! { |addr | addr == address } }
160
157
end
161
158
162
159
# Force a scan of all known servers in the cluster.
@@ -258,15 +255,15 @@ def addition_allowed?(address)
258
255
end
259
256
260
257
def servers_list
261
- @servers_update . synchronize do
258
+ @update_lock . synchronize do
262
259
@servers . reduce ( [ ] ) do |servers , server |
263
260
servers << server
264
261
end
265
262
end
266
263
end
267
264
268
265
def addresses_list
269
- @addresses_update . synchronize do
266
+ @update_lock . synchronize do
270
267
@addresses . reduce ( [ ] ) do |addresses , address |
271
268
addresses << address
272
269
end
0 commit comments