2

私は現在、アプリケーションを作成しようとしています。私は 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) ループはありません)。何が問題なのですか?マスター プロセスは受信メッセージを待ち続けますが、受信しません。

ご協力ありがとう御座います!よろしく、 レミー

4

0 に答える 0