Моя программа читает лабиринт из текстового файла, затем основная программа создает 3 разных потока, чтобы копаться в этом лабиринте и искать выход. Когда поток обнаруживает выход, он публикует путь решения в основном потоке.
В этом лабиринте есть ловушки, которые при встрече с потоком «умирают», сохраняя местоположение этой ловушки в глобальном массиве обнаруженных точек ловушек, чтобы другие потоки знали, где их избегать. После того, как этот поток умрет, основная программа возродит другой поток, который займет его место и продолжит движение по лабиринту.
Поток может столкнуться или не столкнуться с ловушкой, и использование pthread_join только ожидает определенного потока. Как заставить основной поток ожидать одновременно каждого из потоков?