Sha256: 2d4efdaf9a0ce5eb6b7d2b2def7b3ce5c9e0c85ea23d82b1249c0aedf46eef90

Contents?: true

Size: 458 Bytes

Versions: 25

Compression:

Stored size: 458 Bytes

Contents

# frozen_string_literal: true

require 'bundler/setup'
require 'polyphony'

def do_work(client)
  result = yield
  client.schedule(result)
rescue Exception => e
  client.schedule(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

25 entries across 25 versions & 1 rubygems

Version Path
polyphony-0.45.0 examples/core/xx-worker-thread.rb
polyphony-0.44.0 examples/core/xx-worker-thread.rb
polyphony-0.43.11 examples/core/xx-worker-thread.rb
polyphony-0.43.10 examples/core/xx-worker-thread.rb
polyphony-0.43.9 examples/core/xx-worker-thread.rb
polyphony-0.43.8 examples/core/xx-worker-thread.rb
polyphony-0.43.6 examples/core/xx-worker-thread.rb
polyphony-0.43.5 examples/core/xx-worker-thread.rb
polyphony-0.43.4 examples/core/xx-worker-thread.rb
polyphony-0.43.3 examples/core/xx-worker-thread.rb
polyphony-0.43.2 examples/core/xx-worker-thread.rb
polyphony-0.43.1 examples/core/xx-worker-thread.rb
polyphony-0.43 examples/core/xx-worker-thread.rb
polyphony-0.42 examples/core/xx-worker-thread.rb
polyphony-0.41 examples/core/xx-worker-thread.rb
polyphony-0.40 examples/core/xx-worker-thread.rb
polyphony-0.39 examples/core/xx-worker-thread.rb
polyphony-0.38 examples/core/xx-worker-thread.rb
polyphony-0.36 examples/core/xx-worker-thread.rb
polyphony-0.34 examples/core/xx-worker-thread.rb