Method: Ccp::Kvs::Tokyo::StateMachine#W

Defined in:
lib/ccp/kvs/tokyo/state_machine.rb

#W(locker = nil, &block) ⇒ Object



98
99
100
101
102
103
104
105
106
# File 'lib/ccp/kvs/tokyo/state_machine.rb', line 98

def W(locker = nil, &block)
  case state
  when CLOSED   ; begin; W!(locker); yield; ensure; close(locker); end
  when READABLE ; raise "reopen from read to write is not permitted"
    # TODO: close -> W -> close -> R ???
  when WRITABLE ; yield
  else          ; raise "unknown state: #{state}"
  end
end