summaryrefslogtreecommitdiff
path: root/lib/drb/observer.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/drb/observer.rb')
-rw-r--r--lib/drb/observer.rb21
1 files changed, 10 insertions, 11 deletions
diff --git a/lib/drb/observer.rb b/lib/drb/observer.rb
index f2c3455e57..e7f1668c52 100644
--- a/lib/drb/observer.rb
+++ b/lib/drb/observer.rb
@@ -6,17 +6,16 @@ module DRb
def notify_observers(*arg)
if defined? @observer_state and @observer_state
- if defined? @observer_peers
- @observer_peers.delete_if do |k, v|
- begin
- k.send(v, *arg)
- false
- rescue
- true
- end
- end
- end
- @observer_state = false
+ if defined? @observer_peers
+ for i in @observer_peers.dup
+ begin
+ i.update(*arg)
+ rescue
+ delete_observer(i)
+ end
+ end
+ end
+ @observer_state = false
end
end
end