diff options
author | seki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-11-19 18:30:18 +0000 |
---|---|---|
committer | seki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-11-19 18:30:18 +0000 |
commit | 6591e380169e85e7764150e3a93722ca990ee05d (patch) | |
tree | 0bde2c4e556f097c722acb105260e716918190fb /lib/drb/observer.rb | |
parent | 44b6b031bac42734d567b3adfefcaa80011fb039 (diff) | |
download | ruby-6591e380169e85e7764150e3a93722ca990ee05d.tar.gz |
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.rb | 21 |
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 |