Немного информации: мне нужно написать программу, которая управляет некоторыми устройствами (это базовая функциональность). Но я должен написать какую-то систему плагинов для включения других пользовательских функций. У меня нет способа контролировать качество исходного кода этих плагинов, поэтому я решил, что создам поток для каждого загруженного плагина, а затем он будет работать в своем собственном основном цикле. Я могу ловить стандартные исключения C ++, но проблема в том, что я понятия не имею, что делать с сигналами. Лучшим способом было бы асинхронно отменить поток плагина, чтобы дать ему возможность очистить и освободить ресурс или просто убить его, но не знаю, как узнать, какой поток вызывает текущий сигнал. Есть ли способ сделать это без явного сохранения текущей информации о потоке в какой-либо переменной? Или это очень плохая идея, и я должен создать отдельный процесс, а затем запустить плагин?