| 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] |
| |