いくつかのデータを要求するC "DoSomething1()
"、 "DoSomething2()
"、...、 "DoSomethingN()
"に複数のメソッドがあります。これらのメソッドは同時に呼び出すことができます。 データは別のプロセスに存在し、現在のプロセスと他のプロセスとの通信はソケットを使用して行われます。Cの同期コールバック
上記のソケットを使用してデータを要求する同期コールバック "GetSpecialValue()
"を作成し、ソケットが応答すると、その応答を要求した特定の "DoSomethingN()
"に戻す方法を教えてください。
私は、1つのソケットで動作し、呼び出しを開始した特定のメソッドに応答が返されるように要求する多くのメソッドがあることに注意してください。それらのメソッドは異なるスレッドで動作します。
int DoSomethingN(int id) {
int returnValue = GetSpecialValue(id);
return returnValue;
}
int GetSpecialValue(int id) {
SendToProcessViaSocket(id);
int returnValue = ReceiveSocketAnswer();
return returnValue;
}
私は何人かの人々がコールバックにlibevent
を使用することを知っているが、私は、イベントが呼び出されたときに新しいパラメータを返すことができるとは思いません。また、非同期であり、AOSPビルド ..
ありがとう!
デフォルトで同期がとれていますが、何が必要なのですか?単純に要求を送信し、応答を受け取ります... – immibis
スレッドロックを使用する必要があると聞こえますが、関数GetSpecialValue()によって取り出され、DoSomethingN()関数によって解放されるロックを作成できます。 – Alex