Class: LightIO::Core::LightFiber

Inherits:
Fiber
  • Object
show all
Defined in:
lib/lightio/core/light_fiber.rb

Overview

LightFiber is internal represent, we make slight extend on ruby Fiber to bind fibers to IOLoop

SHOULD NOT BE USED DIRECTLY

Direct Known Subclasses

Beam

Constant Summary collapse

ROOT_FIBER =
Fiber.current

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ioloop: IOloop.current, &blk) ⇒ LightFiber

Returns a new instance of LightFiber.



13
14
15
16
# File 'lib/lightio/core/light_fiber.rb', line 13

def initialize(ioloop: IOloop.current, &blk)
  @ioloop = ioloop
  super(&blk)
end

Instance Attribute Details

#ioloopObject (readonly)

Returns the value of attribute ioloop.



8
9
10
# File 'lib/lightio/core/light_fiber.rb', line 8

def ioloop
  @ioloop
end

#on_transferObject

Returns the value of attribute on_transfer.



9
10
11
# File 'lib/lightio/core/light_fiber.rb', line 9

def on_transfer
  @on_transfer
end

Class Method Details

.is_root?(fiber) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/lightio/core/light_fiber.rb', line 24

def is_root?(fiber)
  ROOT_FIBER == fiber
end

Instance Method Details

#transferObject



18
19
20
21
# File 'lib/lightio/core/light_fiber.rb', line 18

def transfer
  on_transfer.call(LightFiber.current, self) if on_transfer
  super
end