Interface Instances and Natural Sessions

#### Search Results

Search

# Interface Instances and Natural Sessions

The function `nni_get_interface` returns a pointer to an instance of the Natural Native Interface. One interface instance can host one Natural session at a time. An application initializes a Natural session by calling the function `nni_initialize` on a given interface instance. It uninitializes the Natural session by calling `nni_uninitialize` on that interface instance. After that it can initialize a new Natural session on the same interface instance.

It is implementation dependent if multiple interface instances and thus multiple Natural sessions can be maintained per process or per thread. In the current implementation of Natural for Windows or Linux, one process can host one Natural session at a time. Consequently, every call to `nni_get_interface` in one process yields the same interface instance. However, this unique interface instance can be used alternating by several concurrently running threads. The thread synchronization is implicitly performed by the interface functions themselves. Optionally it can be performed by the application explicitly. The interface provides the required synchronization functions `nni_enter`, `nni_try_enter` and `nni_leave`.