マルチスレッド プログラミングとプロセス間通信メカニズムの初心者です。
async_receive()
無限ループで着信データを待機するプログラム(Aとしましょう)があります。
ここで、プログラム A を別のプロセス (B としましょう) から制御したいと考えています。
より正確には、プログラム B がシグナルを送ったときにプログラム A を終了させたいと考えています。そうio_service()
すれば、プログラム A がキャンセルされ、プログラム A が終了します。
プログラム A に B からのシグナルを待つスレッドを定義する必要があるようです。
私の質問は、なぜBから信号を受信できるのですか?
message_queue
(mq) ( )を使ってみましたboost/interprocess/ipc/message_queue
。それで、Bはにメッセージを入れますが、mq
プログラムAにデータを読み取るように通知するにはどうすればよいmq
ですか? mq
新しいメッセージがエンキューされたときにハンドラーを呼び出す ことは可能ですか?
つまり、Boost ライブラリを使用して B から A を中断したいのです。ヒントをいただければ、とても助かります。