http://en.cppreference.com/w/cpp/error/terminateに記載されているように、terminateを呼び出す理由はたくさんあります。ほぼ同時に、これらの理由のいくつかが2つのスレッドで発生する場合を想像できます。
Q1設定された終了関数をstd::set_terminate
同時に2回以上呼び出すことはできますか?同時に、最初の呼び出しが終了する前に2番目の呼び出しが開始されることを意味します。
Thread1 Thread2
| |
_ |
t |
e |
r |
m |
i _
n t
a e
t r
e m
- ?
Q2 Q1 == YESの場合、最初の終了が終了するとどうなりますか。std :: abortで終了した場合、プログラムは終了すると思いますが、ユーザーが提供した終了がプログラムを中止しない場合はどうなりますか?
Q3終了関数は、std::set_terminate
この終了呼び出しの原因となったスレッドのコンテキストで呼び出されて設定されますか?