+/*! @function disable
+ @abstract Disable the command gate
+ @discussion When a command gate is disabled all future calls to runAction and runCommand will stall until the gate is enable()d later. This can be used to block client threads when a system sleep is requested. The IOWorkLoop thread itself will never stall, even when making runAction/runCommand calls. This call must be made from a gated context, to clear potential race conditions. */
+ virtual void disable();
+
+/*! @function enable
+ @abstract Enable command gate, this will unblock any blocked Commands and Actions.
+ @discussion Enable the command gate. The attemptAction/attemptCommand calls will now be enabled and can succeeed. Stalled runCommand/runAction calls will be woken up. */
+ virtual void enable();
+