Метод проверки, вернулась ли нить или нет?
Моя основная программа (весь код c) запускает серверную функцию как отдельный поток (pthread_create). Эта функция ожидает входящего ввода и выполняет с ним определенные действия. Между тем основная программа также продолжает работать (основная программа не ждет, пока функция сервера завершит свою работу, прежде чем продолжить).
Теперь существует вероятность возникновения ошибки в функции сервера (проблема с сокетом,...). Затем функция сервера возвращает определенное значение (например, "-1"). Если это так, я хочу прервать выполнение всей программы.
Как я могу справиться с этим?
Моя единственная идея - запустить второй поток, который постоянно проверяет глобальную переменную, которую серверный поток изменяет в случае ошибки. Затем второй поток обрабатывает программу прерывания.
Какие еще варианты у меня есть?
С уважением
1 ответ
Вы можете использовать pthread_join, чтобы дождаться завершения дочернего потока в родительском потоке. Или pthread_cond_wait для реализации подобных вещей.