Велоспорт между волокнами без IO - PullRequest
0 голосов
/ 10 декабря 2018

Насколько я знаю, кристалл циклически расставляет волокна с io, что означает, что если одно волокно ожидает ввода io, кристалл переключится на другое волокно.

Что если мы создаем два волокна, но одно из них выполняет постоянные вычисления / цикл без ввода-вывода?

Например, с помощью приведенного ниже кода сервер не отвечает ни на какие запросы http

spawn do
  Kemal.run
end

spawn do
  # constant computation/loop with no IO
  some_func
end

Fiber.yield
# or sleep
...