From: Roger Pack Date: 2012-02-02T04:49:53+09:00 Subject: [ANN] process_shared -- Python's multiprocessing for Ruby Hello all. Patrick has been doing some excellent work on the "process_shared" gem, which provides for cross process mutexes and shared memory, inspired by Python's multiprocessing library: ex: require 'process_shared' mutex = ProcessShared::Mutex.new mem = ProcessShared::SharedMemory.new(:int) mem.put_int(0, 0) 10.times { fork do puts "in process 1 (#{Process.pid})" 10.times do sleep 0.01 mutex.synchronize do value = mem.get_int(0) sleep rand*0.1 puts "process 1 (#{Process.pid}) incrementing" mem.put_int(0, value + 1) end end end } Process.waitall p mem.get_int(0) # always outputs 100 more advanced examples can be found in the specs: https://github.com/pmahoney/process_shared/tree/master/spec/process_shared It's not quite "polished" but seems to work well for its use cases. It has support for shared native primitives as well as "shared strings" to use for marshalling more complex objects. Thought I'd let people know of its existence. I'd also like to ask if there are any other "features" that people would wish to see added to the library (feel free to test it out, see how you like it). Anything come to mind that would be useful? Thanks! -roger- -- Posted via http://www.ruby-forum.com/.