id of "main" thread in c++

c++, c++11, multithreading

Solution

You could save it while `this_thread` is still the original thread:

std::thread::id main_thread_id;

int main() {
    main_thread_id = std::this_thread::get_id(); // gotcha!
    /* go on */
}

Problem

Is there a way in c++ to get the id of the "main" program thread? I see that `std::this_thread::get_id()` gets the id of the currently executing thread but I need the id of the `main`, original program thread. I don't see any function to get this. The reason is that I have some non thread safe internal functions that must only be called on the original thread of the application so to be safe I want to do :- ``` assert(std::this_thread::get_id() == std::main_thread::get_id()); ``` But there of course isn't a function to do that, and I can't see any way to get that information.

Original source

Related problems