Sha256: 9ec0b4d31bac34794023dd97bc5b9408b9ba1f47182b1c85e9993a7ea6b1c513

Contents?: true

Size: 388 Bytes

Versions: 95

Compression:

Stored size: 388 Bytes

Contents

# frozen_string_literal: true

require 'bundler/setup'
require 'polyphony'
require 'polyphony/core/sync'

def loop_it(number, lock)
  loop do
    sleep(rand * 0.2)
    lock.synchronize do
      puts "child #{number} has the lock"
      sleep(rand * 0.05)
    end
  end
end

lock = Polyphony::Mutex.new
spin { loop_it(1, lock) }
spin { loop_it(2, lock) }
spin { loop_it(3, lock) }

suspend

Version data entries

95 entries across 95 versions & 1 rubygems

Version Path
polyphony-1.6 examples/core/using-a-mutex.rb
polyphony-1.5 examples/core/using-a-mutex.rb
polyphony-1.4 examples/core/using-a-mutex.rb
polyphony-1.3 examples/core/using-a-mutex.rb
polyphony-1.2.1 examples/core/using-a-mutex.rb
polyphony-1.2 examples/core/using-a-mutex.rb
polyphony-1.1.1 examples/core/using-a-mutex.rb
polyphony-1.1 examples/core/using-a-mutex.rb
polyphony-1.0.2 examples/core/using-a-mutex.rb
polyphony-1.0.1 examples/core/using-a-mutex.rb
polyphony-1.0 examples/core/using-a-mutex.rb
polyphony-0.99.6 examples/core/using-a-mutex.rb
polyphony-0.99.5 examples/core/using-a-mutex.rb
polyphony-0.99.4 examples/core/using-a-mutex.rb
polyphony-0.99.3 examples/core/using-a-mutex.rb
polyphony-0.99.2 examples/core/using-a-mutex.rb
polyphony-0.99.1 examples/core/using-a-mutex.rb
polyphony-0.99 examples/core/using-a-mutex.rb
polyphony-0.98 examples/core/using-a-mutex.rb
polyphony-0.97 examples/core/using-a-mutex.rb