Sha256: bd7e4f4fbb978a08e121972e736fe810b2078ccb520f0282f49fc01fc535542a

Contents?: true

Size: 565 Bytes

Versions: 125

Compression:

Stored size: 565 Bytes

Contents

module Dataflow
  class FutureQueue
    include Dataflow
    declare :push_port, :pop_port
    
    def initialize
      local do |pushed, popped|
        unify push_port, Dataflow::Port.new(pushed)
        unify pop_port, Dataflow::Port.new(popped)
        
        Thread.new {
          loop do
            barrier pushed.head, popped.head
            unify popped.head, pushed.head
            pushed, popped = pushed.tail, popped.tail
          end
        }
      end
    end

    def push(x) push_port.send x end
    def pop(x) pop_port.send x end
  end
end

Version data entries

125 entries across 125 versions & 3 rubygems

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