summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--state.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/state.rb b/state.rb
index ea3ace5..1c6d09e 100644
--- a/state.rb
+++ b/state.rb
@@ -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