Class: Bran::LibUV::Reactor::Collections::Signal
- Inherits:
-
Abstract
- Object
- Abstract
- Bran::LibUV::Reactor::Collections::Signal
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 ⇒ Signal
Returns a new instance of Signal.
215
216
217
218
219
|
# File 'lib/bran/libuv/reactor/collections.rb', line 215
def initialize(*)
super
@item_pool = []
@callback = FFI.uv_signal_cb(&@reactor.method(:_signal_callback))
end
|
Instance Method Details
#concrete_alloc_item ⇒ Object
221
222
223
|
# File 'lib/bran/libuv/reactor/collections.rb', line 221
def concrete_alloc_item
@item_pool.pop || FFI.uv_signal_alloc
end
|
#concrete_release_item(item) ⇒ Object
225
226
227
|
# File 'lib/bran/libuv/reactor/collections.rb', line 225
def concrete_release_item(item)
@item_pool << item
end
|
#concrete_start_item(ident, item) ⇒ Object
229
230
231
232
233
234
235
236
|
# File 'lib/bran/libuv/reactor/collections.rb', line 229
def concrete_start_item(ident, item)
Util.error_check "creating the signal handler item",
FFI.uv_signal_init(@reactor.ptr, item)
Util.error_check "starting the signal handler item",
FFI.uv_signal_start(item, @callback, ident)
end
|
#concrete_stop_item(ident, item) ⇒ Object
238
239
240
241
|
# File 'lib/bran/libuv/reactor/collections.rb', line 238
def concrete_stop_item(ident, item)
Util.error_check "stopping the signal handler item",
FFI.uv_signal_stop(item)
end
|