Sha256: 1b48c918a79cc568d4e13421c40a9f9937dc0d646e837ad53c079332af3a2357

Contents?: true

Size: 444 Bytes

Versions: 11

Compression:

Stored size: 444 Bytes

Contents

# frozen_string_literal: true

require 'bundler/setup'
require 'polyphony'

def do_work(client)
  result = yield
  client << result
rescue Exception => e
  client << e
end

$worker = Thread.new do
  Fiber.current.tag = :worker
  loop do
    client, block = receive
    do_work(client, &block)
  end
rescue Exception => e
  p e
end

def process(&block)
  $worker.main_fiber << [Fiber.current, block]
  receive
end

sleep 0.1

p process { 1 + 1 }

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
polyphony-0.47.4 examples/core/worker-thread.rb
polyphony-0.47.3 examples/core/worker-thread.rb
polyphony-0.47.2 examples/core/worker-thread.rb
polyphony-0.47.1 examples/core/worker-thread.rb
polyphony-0.47.0 examples/core/worker-thread.rb
polyphony-0.46.1 examples/core/worker-thread.rb
polyphony-0.46.0 examples/core/worker-thread.rb
polyphony-0.45.5 examples/core/worker-thread.rb
polyphony-0.45.4 examples/core/worker-thread.rb
polyphony-0.45.2 examples/core/worker-thread.rb
polyphony-0.45.1 examples/core/worker-thread.rb