Чят. Задачка:
Есть две функции (int,int) omfg_yin(int,int) и (int,int) omfg_yang(int,int)
Когда вызвана функция omfg_yin или omfg_yang, она блокируется, до тех пор, пока не будет вызвана omfg_yang или omfg_yin соответственно.
После этого, omfg_yang возвращает те два инта, которые были переданы omfg_yin, а omfg_yin - те, что были переданы omfg_yang
Собственно задача: реализовать, используя минимальное количество примитивов синхронизации.
У меня не получается решить лучше чем в четыре семафора.