私は現在、アプリケーションを作成しようとしています。私は C コードを書いており、PVM ライブラリを使用しています。アプリが何をすべきかを短くしようとします:
マスタープロセスが生成されます。相互にマスターと通信している 5 つのスレーブ プロセス。スレーブ プロセスは、2 つの並列アクションを実行することになっています。独自の手順を実行することと、2 つ目のこと - 他のスレーブからのメッセージのリスナーになることです。
ランダムに動作するコードの一部を次に示します。
int main()
{
init();
if(fork() == 0)
{
while(1)
{
//perform listener actions
}
}
else
{
while(1)
{
//perform some procedures
}
}
}
これらの両方の while ループ内で MASTER プロセスにいくつかの SEND_MESSAGE アクションを配置すると、非常に奇妙な動作をします。たとえば、これらの while ループがない場合、両方の while から 5 つのメッセージを送信すると (合計 10 :-))、マスター プロセスは、eg. 最初のループから 5 件、2 番目のループから 1 件のメッセージ。親プロセスでWAIT(NULL)すると、うまく実行されます (もちろん、while(1) ループはありません)。何が問題なのですか?マスター プロセスは受信メッセージを待ち続けますが、受信しません。
ご協力ありがとう御座います!よろしく、 レミー