{
    
    std::lock_guard lock(mutex);
    
    
    
    
    
    
    std::filesystem::directory_iterator end;
    for (std::filesystem::directory_iterator it("/proc/self/task"); it != end; ++it)
    {
        pid_t tid = parse<pid_t>(it->path().filename());
        sigval sig_value{};
        sig_value.sival_int = sequence_num.load(std::memory_order_acquire);
        if (0 != ::sigqueue(tid, sig, sig_value))
        {
            
            if (ESRCH == errno)
                continue;
            throwFromErrno("Cannot send signal with sigqueue", ErrorCodes::CANNOT_SIGQUEUE);
        }