Как в openmp-приложении правильно обрабатывать сигналы? Например, имеется приложение, которое в бесконечном цикле выполянет некоторую работу, нужно по получении сигнала остановить параллельную секцию и выполнить обработку, а затем продолжить счёт. Как это правильно сделать, должны ли внутри обработчика быть какие-то openmp-директивы?
int main(int argc, char** argv){
signal(SIGINT, signal_callback_handler);
while(true){
#pragma omp parallel
{
//some work
}
}
}