diff options
| -rw-r--r-- | state.rb | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -103,8 +103,10 @@ class State hold = Hold::User.new if hold == :user hold = Hold::System.new if hold == :system raise TypeError unless hold.is_a? Hold + trace "#{self} being held with #{hold}" @holds.add hold rise if @holds.size == 1 + self end # Release a hold on this state. Arguments are the same as for +hold+. @@ -113,8 +115,10 @@ class State hold = Hold::User.new if hold == :user hold = Hold::System.new if hold == :system raise TypeError unless hold.is_a? Hold - @holds.remove hold + trace "#{self} being released from #{hold}" + @holds.delete hold drop if @holds.size == 0 + self end # Set this state to untrue |
