[Перевод] Как работает GIL в Ruby. Часть 2

В прошлый раз я предложил заглянуть в код MRI, чтобы разобраться с реализацией GIL и ответить на вопросы, которые остались после первой части статьи. Что мы сегодня и сделаем.7e0d58f918d086a046ab097e7a63da87.jpgЧерновая версия этой статьи изобиловала кусками кода на C, однако, из-за этого суть терялась в деталях. В финальной версии почти нет кода, а для любителей поковыряться в исходниках я оставил ссылки на функции, которые упоминал.В предыдущей серии После первой части остались два вопроса: Делает ли GIL array << nil атомарной операцией? Делает ли GIL код на Ruby потокобезопасным? На первый вопрос можно ответив, взглянув на реализацию, поэтому начнем с него.Читать дальше →

© Habrahabr.ru