Sha256: 559460fc5d97ee3db5a7a0a2cb6d16c15c51d9641a173c77bd54cb3a740aba8a

Contents?: true

Size: 403 Bytes

Versions: 121

Compression:

Stored size: 403 Bytes

Contents

require "#{File.dirname(__FILE__)}/../dataflow"
include Dataflow

# Send M messages each along a ring of N nodes
N = 4
M = 2
actors = Array.new(N) { Dataflow::Variable.new }

N.times do |n|
  unify actors[n], Actor.new {
    M.times do |m|
      receive
      puts "[#{n} #{m}]"
      actors[(n+1) % N].send :msg
    end
    puts "[#{n}] done"
  }
end

actors.first.send :msg
actors.each { |x| x.join }

Version data entries

121 entries across 121 versions & 3 rubygems

Version Path
engineyard-serverside-2.0.4 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-1.6.5 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-2.0.3 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-2.0.2 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-2.0.1 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-2.0.0 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-2.0.0.rc1 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-2.0.0.pre5 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-2.0.0.pre4 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-2.0.0.pre3 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-2.0.0.pre2 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-2.0.0.pre1 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-1.7.0.pre2 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-1.6.4 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-1.6.4.pre6 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-1.6.4.pre5 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-1.6.4.pre4 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-1.6.4.pre3 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-1.6.4.pre2 lib/vendor/dataflow/examples/ring.rb
engineyard-serverside-1.6.4.pre lib/vendor/dataflow/examples/ring.rb