Как создать волокно, используя «метод» вместо блока кода - PullRequest
0 голосов
/ 06 июня 2018

Вместо этого,

@fiber = Fiber.new do
  # ...
end

Я пытаюсь сделать что-то вроде этого:

def test
  yield
  # ...
end

def create(process)
  @fiber = Fiber.new(process)
end

create(method(:test))

Как я могу сделать код Fiber похожим на законченную часть?

1 Ответ

0 голосов
/ 06 июня 2018

Просто конвертируйте метод в блок:

def test
  Fiber.yield 2.71
  Fiber.yield 3.14
  Fiber.yield 42
end

def create(&process)
  @fiber = Fiber.new(&process)
end

create(&method(:test))

@fiber.resume # => 2.71
@fiber.resume # => 3.14
@fiber.resume # => 42
...