Since we are working in a single Thread, multiple Fiber environment, disable the multithread Mutex as it will not work.
DEFAULT_OPTIONS[:multithread] = false
# File lib/memcache/event_machine.rb, line 50
50: def close
51: sock = Thread.current[fiber_key]
52: if sock
53: sock.close if !sock.closed?
54: Thread.current[fiber_key] = nil
55: end
56: @retry = nil
57: @status = "NOT CONNECTED"
58: end
# File lib/memcache/event_machine.rb, line 17
17: def fiber_key
18: @fiber_key ||= "memcached-#{@host}-#{@port}"
19: end
# File lib/memcache/event_machine.rb, line 21
21: def socket
22: sock = Thread.current[fiber_key]
23: return sock if sock and not sock.closed?
24:
25: Thread.current[fiber_key] = nil
26:
27: # If the host was dead, don't retry for a while.
28: return if @retry and @retry > Time.now
29:
30: Thread.current[fiber_key] ||= begin
31: sock = EM::SocketConnection.connect(@host, @port, @timeout)
32: yielding = true
33: fiber = Fiber.current
34: sock.callback do
35: @status = 'CONNECTED'
36: @retry = nil
37: yielding = false
38: fiber.resume if Fiber.current != fiber
39: end
40: sock.errback do
41: sock = nil
42: yielding = false
43: fiber.resume if Fiber.current != fiber
44: end
45: Fiber.yield if yielding
46: sock
47: end
48: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.