0

SIGIOを使用してIPCを実行する2つのデーモンを作成しました。ただし、重要なアクションが完了している間に、制御がsignal_handlerに転送されることがあります。これは、アトミックと見なされる可能性のあるアクションです。ループの現在の反復が完了するまで、制御をsignal_handler関数に転送しないように指定する方法はありますか?

よろしくお願いしますD

注:私はLinuxを使用しています

4

1 に答える 1

0

これを行うためのより良い方法があるかどうかはわかりませんが、次のことを行いました。

関数 sigio_handler でグローバル変数 sigio_rec を true に設定しました。sigio_handler は、SIGIO が発生したときに呼び出される sigaction() に登録した関数です。各ループの終わりに、プログラムは sigio_rec が真かどうかをチェックし、真であれば、ソケットからデータを取得して続行します。

--ttfn

于 2013-03-22T14:51:06.537 に答える