diff options
author | seki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-05-27 18:03:08 +0000 |
---|---|---|
committer | seki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-05-27 18:03:08 +0000 |
commit | 68db15e75453f3b4ae1852a637001b39329d57ad (patch) | |
tree | 89ee48ff351d087fe4257f2340c0dd0a113a52b4 /lib/rinda | |
parent | c80c57d94026b910b187e88b09a16c02244f22a8 (diff) |
* lib/rinda/tuplespace.rb (Rinda::TupleBag#delete): use rindex and
delete_at instead of delete for little improvement.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rinda')
-rw-r--r-- | lib/rinda/tuplespace.rb | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/rinda/tuplespace.rb b/lib/rinda/tuplespace.rb index cb86b47221..d5042e00c6 100644 --- a/lib/rinda/tuplespace.rb +++ b/lib/rinda/tuplespace.rb @@ -316,8 +316,13 @@ module Rinda # Removes +tuple+ from the TupleBag. def delete(tuple) - size = tuple.size - @hash.fetch(size, []).delete(tuple) + key = tuple.size + ary = @hash[key] + return unless ary + pos = ary.rindex(tuple) + return unless pos + ary.delete_at(pos) + @hash.delete(key) if ary.empty? end ## |