ZMQ_CTX_TERM(3)

πŸ’… ZMQ_CTX_TERM πŸ’…

okay bestie, so this is a page from the 0MQ Manual, and we're talking about zmq_ctx_term β€” the girl whose whole job is saying "we're done here" to a 0MQ context. periodt.


✨ NAME ✨

zmq_ctx_term β€” terminate a 0MQ context πŸŽ€


✨ SYNOPSIS ✨

int zmq_ctx_term (void *context);

🌸 DESCRIPTION 🌸

The zmq_ctx_term() function shall destroy the 0MQ context context. like, actually shut it down, no half-measures πŸ’€

Context termination is performed in the following steps:

  1. Any blocking operations currently in progress on sockets open within context shall 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. so everyone gets kicked out of the group chat, effective immediately πŸ™ˆ
  2. After interrupting all blocking calls, zmq_ctx_term() shall block until the following conditions are satisfied:
    • All sockets open within context have been closed with zmq_close().
    • For each socket within context, all messages sent by the application with zmq_send() have either been physically transferred to a network peer, or the socket's linger period set with the ZMQ_LINGER socket option has expired.
not me waiting around for every last message to actually land β€” yeah, zmq_ctx_term() is the patient one, she waits for the vibe to fully settle before she leaves. no cap. 🫢

For further details regarding socket linger behaviour refer to the ZMQ_LINGER option in zmq_setsockopt(3).

This function replaces the deprecated functions zmq_term(3) and zmq_ctx_destroy(3). those are the old queens, we don't use them anymore, it's giving vintage for no reason πŸ’…


✨ RETURN VALUE ✨

The zmq_ctx_term() function shall return zero if successful. Otherwise it shall return -1 and set errno to one of the values defined below. it's giving "slay" or "ma'am what happened" and there is no in-between 😭


🌈 ERRORS 🌈

  • EFAULT β€” The provided context was invalid. like bestie that's not even a context, what are you handing me πŸ“
  • EINTR β€” Termination was interrupted by a signal. It can be restarted if needed. okay so something barged in mid-shutdown β€” no biggie, you can just run it again πŸ”₯

πŸ‘‘ SEE ALSO πŸ‘‘

zmq(7) zmq_init(3) zmq_close(3) zmq_setsockopt(3)


πŸ’– AUTHORS πŸ’–

This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing. they're literally the blueprint, go read it if you wanna contribute ✨


and that's the whole page, bestie!! πŸ’… this one came from 0MQ 4.3.5, dated 10/09/2023, and it's the ZMQ_CTX_TERM(3) page β€” go forth and terminate your contexts responsibly, mwah πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from