Предположим, что программа имеет несколько потоков: t1, t2 и т.д. Они используют pthreads. Поток t2 сидит в цикле, читая из потока и обращаясь к переменной со статической продолжительностью хранения.
Теперь предположим, что t1 вызывает exit(0)
.
(Дополнительные сведения: у меня есть программа, которая делает это в системе на основе Unix, и скомпилирована с g++. Программа, по-видимому, иногда дает сбой при завершении работы с трассировкой стека, которая указывает на недопустимую статическую переменную.)
-
Поток уничтожается до уничтожения объекта C++?
-
C++ не знает о потоках, поэтому они продолжают работать до тех пор, пока очистка C++ не будет завершена?
-
Должен ли обработчик
SIGTERM
сначала отключать или уничтожать потоки, прежде чем продолжить, или это происходит автоматически?