Class: Bran::LibUV::Reactor::Collections::Timer
- Inherits:
-
Abstract
- Object
- Abstract
- Bran::LibUV::Reactor::Collections::Timer
show all
- Defined in:
- lib/bran/libuv/reactor/collections.rb
Instance Method Summary
collapse
Methods inherited from Abstract
#drop_item, #invoke_by_addr, #invoke_by_ident, #invoke_handler, #item_by_ident, #make_item, #pop, #push
Constructor Details
#initialize ⇒ Timer
Returns a new instance of Timer.
245
246
247
248
249
|
# File 'lib/bran/libuv/reactor/collections.rb', line 245
def initialize(*)
super
@item_pool = []
@callback = FFI.uv_timer_cb(&@reactor.method(:_timer_callback))
end
|
Instance Method Details
#concrete_alloc_item ⇒ Object
251
252
253
|
# File 'lib/bran/libuv/reactor/collections.rb', line 251
def concrete_alloc_item
@item_pool.pop || FFI.uv_timer_alloc
end
|
#concrete_release_item(item) ⇒ Object
255
256
257
|
# File 'lib/bran/libuv/reactor/collections.rb', line 255
def concrete_release_item(item)
@item_pool << item
end
|
#concrete_start_item(ident, item, timeout) ⇒ Object
259
260
261
262
263
264
265
266
267
268
|
# File 'lib/bran/libuv/reactor/collections.rb', line 259
def concrete_start_item(ident, item, timeout)
timeout_ms = (timeout * 1000).ceil
Util.error_check "creating the timer item",
FFI.uv_timer_init(@reactor.ptr, item)
Util.error_check "starting the timer item",
FFI.uv_timer_start(item, @callback, timeout_ms, timeout_ms)
end
|
#concrete_stop_item(ident, item) ⇒ Object
270
271
272
273
|
# File 'lib/bran/libuv/reactor/collections.rb', line 270
def concrete_stop_item(ident, item)
Util.error_check "stopping the timer item",
FFI.uv_timer_stop(item)
end
|