Method: Ccp::Kvs::Tokyo::StateMachine#open
- Defined in:
- lib/ccp/kvs/tokyo/state_machine.rb
#open(mode, locker = nil) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/ccp/kvs/tokyo/state_machine.rb', line 37 def open(mode, locker = nil) Pathname(@source.to_s).parent.mkpath # open and mark filename for threading error if @db.open(@source.to_s, mode) locker ||= (caller rescue "???") STDERR.puts "LOCK: #{@source} by [#{LOCKED_BY[locker]}]" if @debug CONNECTIONS[@db.path.to_s] = locker elsif threading_error? raise Tokyo::Locked, "%s is locked by [%s]" % [@source, locker_info] else tokyo_error!("%s#open(%s,%s): " % [self.class, @source, mode]) end end |