Brussels / 30 & 31 January 2016


Writing concurrent libraries for all Ruby runtimes

Have you ever wondered how to use more than one of your cores?

The talk will take you on a path of writing a simple concurrent class. We'll start with a basic implementation and gradually improve it based on presented problems and newly learned facts. Our final solution will behave well in the face of concurrency and execute consistently on all Ruby implementations.

We’ll investigate various Ruby runtime differences that we’ve abstracted away with the synchronization layer of the concurrent-ruby gem. We'll go down to runtime internals, final fields, volatile fields and compare-and-swap operations.

In the end, after the problem domain is established, we'll discuss a forming future direction of the Ruby language in parallel environment.


Photo of Petr Chalupa Petr Chalupa