Я профилировал свое приложение на основе событий с помощью ruby-prof и нашел следующее интересное:
5.28 0.00 5.28 0.00 4/4 Mutex#synchronize
90.72% 0.00% 5.28 0.00 5.28 0.00 4 Mutex#sleep
Я думаю, что ruby-prof считает только такты процессора, и, следовательно, я не могу понять, почему мьютексный сон может занимать процессорное время. Я предположил бы, что это спит на уровне ядра, не считая времени волокна. Есть идеи? Более того, я бы хотел, чтобы Mutex # sleep передавал управление машине событий, чтобы он мог выполнять другие функции.