Boost Threads を使用して同時実行性を提供する C++ アプリケーションがあります。基本的なサンプルは次のとおりです。
processingThreadGroup->create_thread(boost::bind(process, clientSideSocket, this));
ここで、processingThreadGroup はブーストのスレッド プールへの共有ポインターであり、process は呼び出す必要がある関数です。clientSideSocket と this は、プロセス関数に渡す必要があるパラメーターです。
エラーが検出された場合、プロセス関数内でカスタム例外をスローします。プロセス関数は、データをリモート サーバーに送信します。だから私の質問は、このエラーをコールスタックに伝播する方法は? クリーンアップ後にシステムをシャットダウンしたい。以下を試しました:
try {
processingThreadGroup->create_thread(boost::bind(process, clientSideSocket, this));
} catch (CustomException& exception) {
//code to handle the error
}
しかし、うまくいきませんでした。これを適切に行う方法について何か考えはありますか?
ありがとう!