diff options
-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 ## |