Я работаю над реализацией проблемы "Fair Barbershop" в Ruby. Это для присвоения класса, но я не ищу никаких раздаточных материалов. Я искал как сумасшедший, но я не могу найти реализацию Ruby семафоров, которые отражают те, что найдены в C.
Я знаю, что есть Mutex, и это здорово. Единственная реализация, делает именно то, что должен делать этот семафор.
Тогда существуют переменные состояния. Я думал, что это будет отлично работать, но, глядя на них, они требуют Mutex для каждого вызова ожидания, который выглядит так, как будто я не могу вводить числовые значения в семафор (как, например, у меня семь парикмахерских, 3 парикмахеры и т.д.).
Мне кажется, мне нужен счетный семафор, но я думаю, что это немного странно, что Ruby не может (из того, что я могу найти) содержать такой класс в своем ядре. Может ли кто-нибудь помочь указать мне в правильном направлении?