[zeromq-dev] Getting started with ruby bindings

Martin Lucina mato at kotelna.sk
Wed Apr 21 15:45:52 CEST 2010


sustrik at imatix.com said:
> Martin Sustrik wrote:
> 
> > Well, we get that even today. The problem is that toy languages don't 
> > implement real concurrency so that they can get stuck when interacting 
> > with 0MQ...
> 
> Ruby is basically a single OS thread + green Ruby threads, right?

Ruby 1.8 (the current stable version in use by most people) runs Ruby
threads as green threads inside a single OS thread.

Ruby 1.9 (which will replace 1.8 sooner rather than later) runs Ruby
threads as real OS threads.

> Such a design doesn't work with 0MQ, but it also doesn't scale to 
> multiple cores.

Doesn't? Sure it does, but you have to deal with the same problems that the
Python people deal with where if you go away into native code everything else
stops while that native code is in control.  You're right about it not
scaling to multiple cores though.

> One possible solution is to take your ruby threads and run them as 
> separate processes. To communicate between them use 0MQ IPC transport.

This would work, yes.

-mato



More information about the zeromq-dev mailing list