ネットワークインタフェース

非同期実行モード

多くの XTI/TLI ライブラリルーチンは受信イベントの待機を行うためブロックを行います。ただし、処理時間要求度の高いアプリケーションでは使用するべきではありません。アプリケーションは非同期 XTI/TLI イベントを待機している間にローカル処理が行えます。

XTI/TLI イベントの非同期処理は、非同期機能および XTI/TLI ライブラリルーチンの非ブロックモードの組み合わせによりアプリケーションによる使用が可能です。poll(2) システムコールおよび、ioctl(2)I_SETSIG コマンドの使用による非同期イベント処理については『ONC+ 開発ガイド』に記述されています。

イベントのブロックを行う各 XTI/TLI ルーチンは特別な非ブロッキングモードで実行することが可能です。たとえば、t_listen(3NSL) は通常接続要求のブロックを行います。サーバーは非ブロッキング (または非同期) モードの t_listen(3NSL) に呼び出しを行うことにより定期的にトランスポートエンドポイント接続要求待機のポーリングを行うことができます。非同期モードはファイル記述子で O_NDELAY または O_NONBLOCK を設定することにより使用可能となります。これらのモードはフラグとして t_open(3NSL) 、または XTI/TLI ルーチンを呼び出す前に fcntl(2) を呼び出すことにより設定が可能です。このモードは常時 fcntl(2) によって有効化、無効化が行えます。この章のすべてのプログラム例ではデフォルトの同期処理モードを使用しています。

O_NDELAYO_NONBLOCK は各 XLI/TLI ルーチンへ異なる影響を与えます。特定のルーチンへの影響は O_NDELAYO_NONBLOCK の正確な意味論を判断する必要があります。