C++ でプロセスが終了する前に、メイン関数の最後をキャッチし、別のスレッドで追加の操作を実行できるようにしたいと考えています。
メインスレッドへのハンドルを取得して参加しようとしましたが、 std::this_thread/boost::this_thread では現在のスレッドのハンドルにアクセスできないようです。
私がやりたいことは、基本的に次のとおりです。
void thread_function(thread_handler) {
thread_handler.join();
< Perform extra operations before the program finishes its main function >
}
int main() {
< thread_function thread started in LD_PRELOAD>
.... Program runs .....
return 0;
}
私のシナリオでは、thread_function スレッドは LD_PRELOAD を使用して共有ライブラリで呼び出されるため、これら 2 つの関数には共有状態がありませんが、後でmain()を呼び出すスレッドから何でも渡すことができます。メイン関数の最後をキャッチすることはできないかもしれませんが、誰かがこれについて知っている場合に備えて質問したいと思います。