blob: 3a59945dd2145df6b82865ce6cfb792bbe9052a8 [file] [log] [blame]
nn_term(3)
==========
NAME
----
nn_term - notify all sockets about process termination
SYNOPSIS
--------
*#include <nanomsg/nn.h>*
*void nn_term (void);*
DESCRIPTION
-----------
To help with shutdown of multi-threaded programs nanomsg provides the
_nn_term()_ function which closes all open sockets, and releases all
related resources.
If a socket is blocked inside a blocking function, such as
<<nn_recv#,nn_recv(3)>>, it will be unblocked and EBADF error will be returned
to the user. Subsequent calls on such sockets will also return EBADF.
Attempting to open a new socket with <<nn_socket#,nn_socket(3)>> will
result in an ETERM error.
If waiting for _NN_SNDFD_ or _NN_RCVFD_ using a polling function, such as
_poll()_ or _select()_, the call will unblock with both _NN_SNDFD_ and
_NN_RCVFD_ signaled.
EXAMPLE
-------
----
s = nn_socket (AF_SP, NN_PAIR);
nn_term ();
rc = nn_send (s, "ABC", 3, 0);
assert (rc == -1 && errno == EBADF);
----
SEE ALSO
--------
<<nn_close#,nn_close(3)>>
<<nn_send#,nn_send(3)>>
<<nn_socket#,nn_socket(3)>>
<<nn_recv#,nn_recv(3)>>
<<nanomsg#,nanomsg(7)>>
AUTHORS
-------
link:mailto:sustrik@250bpm.com[Martin Sustrik]
link:mailto:garrett@damore.org[Garrett D'Amore]