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 on Windows and UNIX 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
.