Class: UV::Work

Inherits:
Object
  • Object
show all
Includes:
Listener, Resource
Defined in:
lib/uv/work.rb

Instance Method Summary collapse

Methods included from Resource

#check_result, #check_result!, #to_ptr

Methods included from Listener

define_callback, undefine_callbacks

Constructor Details

#initialize(loop, work, callback = nil) ⇒ Work

Returns a new instance of Work.



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/uv/work.rb', line 5

def initialize(loop, work, callback = nil)
  @loop, @work, @callback = loop, work, callback
  @complete = false

  @pointer = UV.create_request(:uv_work)
  begin
    check_result! UV.queue_work(@loop, @pointer, callback(:on_work), callback(:on_complete))
  rescue StandardError => e
    UV.free(@pointer)
    @complete = true
    raise e
  end
end

Instance Method Details

#cancelObject



19
20
21
22
23
24
# File 'lib/uv/work.rb', line 19

def cancel
  if not @complete
    check_result! UV.cancel(@pointer)
    @complete = true
  end
end

#completed?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/uv/work.rb', line 26

def completed?
  return @complete
end