関数が終了しても関数内で呼び出したスレッドを止めない方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
むずかC

関数が終了しても関数内で呼び出したスレッドを止めない方法

#1

投稿記事 by むずかC » 2年前

あるパケットを受信すると
OnPacket(packet) のような関数が呼ばれます。その中で処理を行って返信するコードを書いています。
この処理はマルチスレッドを実現しておらず、何個もパケットが来ると処理完了まで次の処理が始まりません。

OnPacket 内でスレッドを生成しても、OnPacket が終了すると当然スレッドも終了します。
OnPacketをスレッド化すれば良いのですが都合上難しく他の方法を探ってます。
別プロセスで動かすのも避けたいです。

何か使えそうな実装があれば教えていただきたいです

環境:
C++,Linux,boost

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: 関数が終了しても関数内で呼び出したスレッドを止めない方法

#2

投稿記事 by YuO » 2年前

普通,スレッドを作成した関数が終了したところでスレッドの実行は終了しません。
どのような方法で,スレッドを生成し,終了したことを確認しているのでしょうか。

返信

“C言語何でも質問掲示板” へ戻る