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 | |
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
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/rinda/tuplespace.rb | 9 |
2 files changed, 12 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Mon May 28 02:54:05 2007 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp> + + * lib/rinda/tuplespace.rb (Rinda::TupleBag#delete): use rindex and + delete_at instead of delete for little improvement. + Sat May 26 00:05:22 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> * test/ruby/test_beginendblock.rb (test_should_propagate_signaled): 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 ## |