= zmq_ctx_shutdown(3)


== NAME
zmq_ctx_shutdown - shutdown a 0MQ context


== SYNOPSIS
*int zmq_ctx_shutdown (void '*context');*


== DESCRIPTION
The _zmq_ctx_shutdown()_ function shall shutdown the 0MQ context 'context'.

Context shutdown will cause any blocking operations currently in progress on 
sockets open within 'context' to return immediately with an error code of ETERM.
With the exception of _zmq_close()_, any further operations on sockets open within
'context' shall fail with an error code of ETERM. No further sockets can be created
using _zmq_socket()_ on a context for which _zmq_ctx_shutdown()_ has been called,
it will return and set errno to ETERM.

This function is optional, client code is still required to call the xref:zmq_ctx_term.adoc[zmq_ctx_term]
function to free all resources allocated by zeromq.


== RETURN VALUE
The _zmq_ctx_shutdown()_ function shall return zero if successful. Otherwise
it shall return `-1` and set 'errno' to one of the values defined below.


== ERRORS
*EFAULT*::
The provided 'context' was invalid.


== SEE ALSO
* xref:zmq.adoc[zmq]
* xref:zmq_init.adoc[zmq_init]
* xref:zmq_ctx_term.adoc[zmq_ctx_term]
* xref:zmq_close.adoc[zmq_close]
* xref:zmq_setsockopt.adoc[zmq_setsockopt]


== AUTHORS
This page was written by the 0MQ community. To make a change please
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
