Я профилировал свое приложение, основанное на машине событий, с помощью 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 передал управление машине событий, чтобы она могла делать другие вещи.