RPC 拡張開発ガイド

非-ブロッキングとして構成したときの clnt_call()

1 方向性メッセージングには、clnt_send() 関数を使用します。クライアントがリクエストをサーバーに送信する際、応答を待機しないので、タイムアウトは適用されません。

2 方向性メッセージングには、clnt_call() を使用します。サーバーが応答を送信するかエラーのステータスメッセージを送信するか、またはクライアントサイドでタイムアウトが発生するまで、クライアントはブロックされたままになります。

非-ブロッキング機能では、2 方向性と 1 方向性のコールを共に送信することができます。RPC_CL_NONBLOCKING 入出力モードを使用し、非-ブロッキングとして構成したクライアントサイドで clnt_call() を使用すると、次のような動作の変更があります。2 方向性のリクエストがバッファーに送られると、バッファー内にすでに入っている 1 方向性のすべてのリクエストが、その 2 方向性のリクエストが処理される前にトランスポート層を介して送られます。バッファーを空にするための時間は、2 方向性コールのタイムアウトにはカウントされません。詳細は、clnt_control(3NSL) のマニュアルページを参照してください。