4 ms·
One other thing a lot of people don't know about Rubinius is that its fundamental concurrency primitive is Rubinius::Channel, similar to channels in Go. For exa
by andrewvc 16y ago
One other thing a lot of people don't know about Rubinius is that its fundamental concurrency primitive is Rubinius::Channel, similar to channels in Go. For example, see Rubinius' implementation of class Mutex: https://github.com/evanphx/rubinius/blob/master/lib/thread.rb#L42 https://github.com/evanphx/rubinius/blob/master/lib/thread.r...
Quoth MenTaLguY: MenTaLguY: Channels are the basic communication primitive in Rubinius; everything else is implemented atop them. The fundamental concurrency model is more or less the asynchronous pi calculus minus replication and a few common extensions like non-deterministic choice (which potentially requires channel operations to be centrally arbitrated). I advocated pi calculus channels because of their simplicity, which generally translates to performance and maintainability.
http://www.infoq.com/articles/actors-rubinius-interview http://www.infoq.com/articles/actors-rubinius-interview