[zeromq-dev] Cleaning-up context creation API

Pieter Hintjens ph at imatix.com
Wed Feb 15 23:57:33 CET 2012

Hi all,

I'd like to canvas opinion for some cleanup of the ctx creation API.
This would be a backwards compatible change in accordance with

There are several faults with the current context API:

* It is inconsistent with the rest of the API, e.g. zmq_init for a new
context vs. zmq_msg_init vs. zmq_socket for a new socket.
* It still has that iothreads option in zmq_init, which IMO should
have gone a long time ago.
* It is not extensible, so we are seeing new experiments like

My proposal is to make a new consistent API for contexts:

* zmq_ctx_init and zmq_ctx_term
* zmq_ctx_peek and zmq_ctx_poke to get/set options
* explicit option settings for ZMQ_IOTHREADS and ZMQ_THREADSAFE

And internally this would create the context lazily, only when the
first socket is created (so the IOTHREADS can be applied then).

There is a separate discussion about changing the functions for
get/set message options. Peek/poke are short. getctxopt/setctxopt are
messy wrt the other ctx functions.


More information about the zeromq-dev mailing list