C++ 如何阻止使用std::thread创建的线程中的某些信号?

C++ 如何阻止使用std::thread创建的线程中的某些信号?,c++,multithreading,signals,stdthread,C++,Multithreading,Signals,Stdthread,在我的类的一个成员函数(由多个线程访问)中,我创建了一个单独的线程来压缩巨大的日志文件(~1GB) 请阅读更多信息,并了解信号掩码。请注意,并非所有信号都可以发送到子线程。(我知道链接的手册页面是特定于Linux的,但是其中的大部分信息对于所有POSIX平台都是通用的,并且这些信息对于其他POSIX平台也是有效的。)我读了这篇文章。然而,我有更多的问题,我张贴在:请阅读更多关于,并了解有关信号掩码。请注意,并非所有信号都可以发送到子线程。(我知道链接的手册页面是特定于Linux的,但是其中的大部

在我的类的一个成员函数(由多个线程访问)中,我创建了一个单独的线程来压缩巨大的日志文件(~1GB)


请阅读更多信息,并了解信号掩码。请注意,并非所有信号都可以发送到子线程。(我知道链接的手册页面是特定于Linux的,但是其中的大部分信息对于所有POSIX平台都是通用的,并且这些信息对于其他POSIX平台也是有效的。)我读了这篇文章。然而,我有更多的问题,我张贴在:请阅读更多关于,并了解有关信号掩码。请注意,并非所有信号都可以发送到子线程。(我知道链接的手册页面是特定于Linux的,但是其中的大部分信息对于所有POSIX平台都是通用的,并且这些信息对于其他POSIX平台也是有效的。)我读了这篇文章。然而,我还有更多的问题,我发布在:
void Log::log (std::string message)
    {
        // Lock using mutex
        std::lock_guard<std::mutex> lck(mtx);

        _outputFile << message << std::endl;
        _outputFile.flush();
        _sequence_number++;
        _curr_file_size = _outputFile.tellp();

        if (_curr_file_size >= max_size) {
            // Code to close the file stream, rename the file, and reopen
            ...


            // Create an independent thread to compress the file since
            // it takes some time to compress huge files.
            if (!_log_compression_on)
            {
                std::thread(&Log::rotate_log, this, _logfile, _max_files, _compress).detach();
            }
        }
    }
void rotate_log (std::string logfile, uint32_t max_files, bool compress)
{
    // How to block some signals such as SIGTERM, SIGHUP?

    // Do other stuff.
}