Module: MessagePack::RPC::LoopUtil

Included in:
Client, SessionPool
Defined in:
lib/msgpack/rpc/loop.rb

Defined Under Namespace

Classes: TaskQueue, Timer

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#loopObject (readonly)

Returns the value of attribute loop.



26
27
28
# File 'lib/msgpack/rpc/loop.rb', line 26

def loop
  @loop
end

Instance Method Details

#runObject



72
73
74
# File 'lib/msgpack/rpc/loop.rb', line 72

def run
  @loop.run
end

#start_timer(interval, repeating, &block) ⇒ Object



38
39
40
# File 'lib/msgpack/rpc/loop.rb', line 38

def start_timer(interval, repeating, &block)
  @loop.attach Timer.new(interval, repeating, &block)
end

#stopObject



76
77
78
79
80
81
82
# File 'lib/msgpack/rpc/loop.rb', line 76

def stop
  @queue.detach if @queue && @queue.attached?
  @loop.stop
  # attach dummy timer
  @loop.attach Cool.io::TimerWatcher.new(0, false)
  nil
end

#submit(task = nil, &block) ⇒ Object



63
64
65
66
67
68
69
70
# File 'lib/msgpack/rpc/loop.rb', line 63

def submit(task = nil, &block)
  task ||= block
  unless @queue
    @queue = TaskQueue.new
    @loop.attach(@queue)
  end
  @queue.push(task)
end