nn_term(3) ========== NAME ---- nn_term - notify all sockets about process termination SYNOPSIS -------- *#include * *void nn_term (void);* DESCRIPTION ----------- To help with shutdown of multi-threaded programs nanomsg provides the _nn_term()_ function which informs all the open sockets that process termination is underway. If a socket is blocked inside a blocking function, such as linknanomsg:nn_recv[3], it will be unblocked and ETERM error will be returned to the user. Similarly, any subsequent attempt to invoke a socket function other than linknanomsg:nn_close[3] after _nn_term()_ was called will result in 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. The _nn_term()_ function itself is non-blocking. EXAMPLE ------- ---- s = nn_socket (AF_SP, NN_PAIR); nn_term (); rc = nn_send (s, "ABC", 3, 0); assert (rc == -1 && errno == ETERM); ---- SEE ALSO -------- linknanomsg:nn_close[3] linknanomsg:nn_send[3] linknanomsg:nn_recv[3] linknanomsg:nn_getsockopt[3] linknanomsg:nanomsg[7] AUTHORS ------- Martin Sustrik