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