summaryrefslogtreecommitdiff
path: root/lib/drb/observer.rb
diff options
context:
space:
mode:
authorseki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-19 18:30:18 +0000
committerseki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-19 18:30:18 +0000
commit6591e380169e85e7764150e3a93722ca990ee05d (patch)
tree0bde2c4e556f097c722acb105260e716918190fb /lib/drb/observer.rb
parent44b6b031bac42734d567b3adfefcaa80011fb039 (diff)
merged from ruby_1_8 branch.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
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