Sha256: 5e7aaef06f336efdbf670187eced2beb79edda9ddcc77d185631edc266540e0b

Contents?: true

Size: 422 Bytes

Versions: 6

Compression:

Stored size: 422 Bytes

Contents

Work = Algebrick.type do
  fields key: String, work: Proc
end

Finished = Algebrick.type do
  fields key: String, result: Object, worker: Worker
end

class Worker < AbstractActor
  def initialize(executor)
    super()
    @executor = executor
  end

  def on_message(message)
    match message,
          Work.(~any, ~any) >-> key, work do
            @executor.tell Finished[key, work.call, self]
          end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
algebrick-0.7.3 doc/actor.rb
algebrick-0.7.2 doc/actor.rb
algebrick-0.7.1 doc/actor.rb
algebrick-0.7.0 doc/actor.rb
algebrick-0.6.0 doc/actor.rb
algebrick-0.5.0 doc/actor.rb