Как ждать булево значение без занятости
У меня есть приложение на Ruby, написанное с использованием DRb, в котором удаленный объект сообщает локальному объекту, что это делается путем переключения логического значения на локальный объект. В настоящее время я жду этого логического значения, например:
sleep(0.05) until o.done?
Это поддерживает низкую нагрузку на процессор (~0,2%, а не 100% от реального ожидания), быстро реагирует, но просто не чувствует себя хорошо. Должен быть лучший способ ожидания значения или сигнализации моего процесса из состояния ожидания. Есть?
ПРИМЕЧАНИЕ. Важно, чтобы код ожидания приносил ЦПУ как можно больше / указывал ОС не планировать нас так, как это будет, если одновременно будут выполняться важные задачи с интенсивным использованием ЦП.