dimanche 28 février 2021

How an exit code is determined in a multithreaded program when one of the threads fails?

struct func
{
    int& i;
    func(int& i_):i(i_){}
    void operator()()
    {
        for (unsigned j = 0; j < 1000000; ++j)
        {
            ++i;
        }
    }
};

int main()
{
    int some_local_state = 0;
    func my_func(some_local_state);
    std::thread my_thread(my_func);
    my_thread.detach();
    return 0;
}

Output is

(process 1528) exited with code -1073741819

What determines the exit code? What does detaching mean for a Windows process?

Aucun commentaire:

Enregistrer un commentaire