On Feb 1, 2006, at 4:38 PM, Phil Tomson wrote:

> In article <AA20B34D-C599-4979-B66A-E9E1DD79B497 / segment7.net>,
> Eric Hodel  <drbrain / segment7.net> wrote:
>> On Jan 27, 2006, at 6:53 PM, Marc Soda wrote:
>>
>>> I'm very new to Ruby, so excuse me if this is a newbie question.
>>> I've can't
>>> seem to find much information on different types of IPC in Ruby.
>>
>> Usually IPC in Ruby is performed via high-level constructs rather
>> than sockets, pipes and shared memory.
>>
>>> I realize there's sockets, but what about shared memory,
>>
>> http://moulon.inra.fr/ruby/mmap.html
>>
>>> message queues, semaphores, etc.
>>
>> Typically implemented via Distributed Ruby sharing a Queue or other
>> objects from thread.rb (both part of the standard library).
>>
>> http://segment7.net/projects/ruby/drb/
>>
>>> I found an extention library, sysvipc, is this it?
>>
>> sysvipc sounds like a wrapper for System V IPC.  You should be able
>> to find lots of documentation with a Google search.
>>
>> I recommend you check out DRb, it makes IPC much more sane.
>
> To add to the OP's question:
> What if you need to transfer data between two different processes
> very quickly?  If you need speed, wouldn't mmap be the way to go?
> Does mmap allow for bidirectional data transfer?
>
> Phil
>
>

I would suggest man mmap. But to answer your question, it allows for  
bi-directional communication. In fact it allows for communication  
between as many processes as you'd like. Of course then you have to  
start worrying about concurrency.