if (wait(100) && sig_value.sival_int == data_ready_num.load(std::memory_order_acquire))
        {
            size_t stack_trace_size = stack_trace.getSize();
            size_t stack_trace_offset = stack_trace.getOffset();
            Array arr;
            arr.reserve(stack_trace_size - stack_trace_offset);
            for (size_t i = stack_trace_offset; i < stack_trace_size; ++i)
                arr.emplace_back(reinterpret_cast<intptr_t>(stack_trace.getFramePointers()[i]));
            res_columns[0]->insert(tid);
            res_columns[1]->insertData(query_id_data, query_id_size);
            res_columns[2]->insert(arr);
        }
        else
        {
            LOG_DEBUG(log, "Cannot obtain a stack trace for thread {}", tid);
            
            res_columns[0]->insert(tid);
            res_columns[1]->insertDefault();
            res_columns[2]->insertDefault();
        }
        
        
        
        
        ++sequence_num;
    }
}
}
#endif