インターフェイスインスタンスおよび Natural セッション

関数 nni_get_interface では、Natural Native Interface のインスタンスへのポインタが返されます。1 つのインターフェイスインスタンスで、一度に 1 つの Natural セッションをホストできます。アプリケーションでは、任意のインターフェイスインスタンス上で関数 nni_initialize を呼び出すことによって、Natural セッションが初期化されます。次に、同じインターフェイスインスタンス上で nni_uninitialize を呼び出し、Natural セッションを初期化解除します。この後は、この同じインターフェイスインスタンス上で新しい Natural セッションを初期化できるようになります。

複数のインターフェイスインスタンス、すなわち複数の Natural セッションをプロセスごとまたはスレッドごとに管理できるかどうかは、実装に依存します。Windows、UNIX、および OpenVMS 上での Natural の現在の実装では、一度に 1 つの Natural セッションをホストできます。そのため、1 つのプロセスで nni_get_interface が呼び出されるたびに、同じインターフェイスインスタンスが発生します。ただし、この一意のインターフェイスインスタンスを、同時に実行される複数のスレッドで交互に使用することができます。スレッドの同期化は、インターフェイス関数によって自動的、暗黙的に実行されます。オプションとして、アプリケーションで明示的に実行することもできます。このインターフェイスによって、必要な同期関数である nni_enternni_try_enter、および nni_leave が提供されます。