В моей программе мне нужно выполнить какое-то действие по истечению таймера (timer_create()). Я хочу выполнить это действие, создав новый поток. Поэтому я хочу знать, можно ли создать поток в обработчиках сигналов?Создание потока в обработчиках сигналов
2
A
ответ
2
Обработчики сигналов могут не вызывать функции без повторного входа. Вы должны посмотреть на свою документацию o/s, но создание потока вряд ли будет повторным. В linux man -s7 signal
дает вам список функций безопасного вызова, который не содержит ничего из pthread.
Действительно, все обработчики сигналов должны делать это, чтобы установить флаг для основного кода или потока обработки сигнала для чтения. Более того, это рискованно.
Вызов 'timer_create()' с 'struct sigevent' с' .sigev_notify = SIGEV_THREAD'. – EOF