Вот упрощенная версия моей проблемы.
Есть N потоков, выполняющих следующие 3 инструкции в бесконечном цикле:
A -> B -> C -> A -> B -> C -> A -> B -> .......
Я хочу, чтобы все потоки выполняли инструкцию B одновременно, т.е. выполнение B любым потоком должно начинаться только в том случае, если все потоки достигли B. Итак, если есть поток, который выполнил B -> C -> A, он должен ждать здесь, пока другие потоки также не будут готовы выполнить B.
Если возможно, дайте мне знать портативное решение, которое будет работать как на Windows, так и на MAC.