Getting the Context Right
ÃMQ applications always start by creating a
context, and then using that for creating sockets.
In C, itâs the zmq_ctx_new()
call.
You should create and use exactly one context in your process.
Technically, the context is the container for all sockets in a single
process, and it acts as the transport for inproc
sockets, which are the fastest way to
connect threads in one process. If at runtime a process has two
contexts, these are like separate ÃMQ instances. If thatâs explicitly
what you want, thatâs OK, but otherwise remember:
Do one zmq_ctx_new()
at
the start of your main code, and one zmq_ctx_destroy()
at the
end.
If youâre using the fork()
system call, each process needs its own context. If you do zmq_ctx_new()
in the main process before
calling fork()
, the child processes
get their own contexts. In general, you want to do the interesting stuff
in the child processes and just manage these from the parent
process.
Get ZeroMQ now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.