logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

zmq_ctx_set - set context options

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.

0MQ 4.3.5                                          03/31/2024                                     ZMQ_CTX_SET(3)

Description

       The zmq_ctx_set() function shall set the option specified by the option_name argument to the value of the
       option_value argument.

       The zmq_ctx_set() function accepts the following options:

   ZMQ_BLOCKY:Fixblockybehavior
       By default the context will block, forever, on a zmq_ctx_term call. The assumption behind this behavior
       is that abrupt termination will cause message loss. Most real applications use some form of handshaking
       to ensure applications receive termination messages, and then terminate the context with ZMQ_LINGER set
       to zero on all sockets. This setting is an easier way to get the same result. When ZMQ_BLOCKY is set to
       false, all new sockets are given a linger timeout of zero. You must still close all sockets before
       calling zmq_ctx_term.

       Default value   true (old behavior)

   ZMQ_IO_THREADS:SetnumberofI/Othreads
       The ZMQ_IO_THREADS argument specifies the size of the 0MQ thread pool to handle I/O operations. If your
       application is using only the inproc transport for messaging you may set this to zero, otherwise set it
       to at least one. This option only applies before creating any sockets on the context.

       Default value   1

   ZMQ_THREAD_SCHED_POLICY:SetschedulingpolicyforI/Othreads
       The ZMQ_THREAD_SCHED_POLICY argument sets the scheduling policy for internal context’s thread pool. This
       option is not available on windows. Supported values for this option can be found in sched.h file, or at
       http://man7.org/linux/man-pages/man2/sched_setscheduler.2.html. This option only applies before creating
       any sockets on the context.

       Default value   -1

   ZMQ_THREAD_PRIORITY:SetschedulingpriorityforI/Othreads
       The ZMQ_THREAD_PRIORITY argument sets scheduling priority for internal context’s thread pool. This option
       is not available on windows. Supported values for this option depend on chosen scheduling policy. On
       Linux, when the scheduler policy is SCHED_OTHER, SCHED_IDLE or SCHED_BATCH, the OS scheduler will not use
       the thread priority but rather the thread "nice value"; in such cases, if ZMQ_THREAD_PRIORITY is set to a
       strictly positive value, the system call "nice" will be used to set the nice value to -20 (max priority)
       instead of adjusting the thread priority (which must be zero for those scheduling policies). Details can
       be found in sched.h file, or at http://man7.org/linux/man-pages/man2/sched_setscheduler.2.html. This
       option only applies before creating any sockets on the context.

       Default value   -1

   ZMQ_THREAD_AFFINITY_CPU_ADD:AddaCPUtolistofaffinityforI/Othreads
       The ZMQ_THREAD_AFFINITY_CPU_ADD argument adds a specific CPU to the affinity list for the internal
       context’s thread pool. This option is only supported on Linux. This option only applies before creating
       any sockets on the context. The default affinity list is empty and means that no explicit CPU-affinity
       will be set on internal context’s threads.

       Default value   -1

   ZMQ_THREAD_AFFINITY_CPU_REMOVE:RemoveaCPUtolistofaffinityforI/Othreads
       The ZMQ_THREAD_AFFINITY_CPU_REMOVE argument removes a specific CPU to the affinity list for the internal
       context’s thread pool. This option is only supported on Linux. This option only applies before creating
       any sockets on the context. The default affinity list is empty and means that no explicit CPU-affinity
       will be set on internal context’s threads.

       Default value   -1

   ZMQ_THREAD_NAME_PREFIX:SetnameprefixforI/Othreads
       The ZMQ_THREAD_NAME_PREFIX argument sets a numeric prefix to each thread created for the internal
       context’s thread pool. This option is only supported on Linux. This option is useful to help debugging
       done via "top -H" or "gdb"; in case multiple processes on the system are using ZeroMQ it is useful to
       provide through this context option an application-specific prefix to distinguish ZeroMQ background
       threads that belong to different processes. This option only applies before creating any sockets on the
       context.

       Default value   -1

   ZMQ_MAX_MSGSZ:Setmaximummessagesize
       The ZMQ_MAX_MSGSZ argument sets the maximum allowed size of a message sent in the context. You can query
       the maximal allowed value with zmq_ctx_get(3) using the ZMQ_MAX_MSGSZ option.

       Default value   INT_MAX

       Maximum value   INT_MAX

   ZMQ_ZERO_COPY_RECV:Specifymessagedecodingstrategy
       The ZMQ_ZERO_COPY_RECV argument specifies whether the message decoder should use a zero copy strategy
       when receiving messages. The zero copy strategy can lead to increased memory usage in some cases. This
       option allows you to use the older copying strategy. You can query the value of this option with
       zmq_ctx_get(3) using the ZMQ_ZERO_COPY_RECV option. NOTE: in DRAFT state, not yet available in stable
       releases.

       Default value   1

   ZMQ_MAX_SOCKETS:Setmaximumnumberofsockets
       The ZMQ_MAX_SOCKETS argument sets the maximum number of sockets allowed on the context. You can query the
       maximal allowed value with zmq_ctx_get(3) using the ZMQ_SOCKET_LIMIT option.

       Default value   1023

   ZMQ_IPV6:SetIPv6option
       The ZMQ_IPV6 argument sets the IPv6 value for all sockets created in the context from this point onwards.
       A value of 1 means IPv6 is enabled, while 0 means the socket will use only IPv4. When IPv6 is enabled, a
       socket will connect to, or accept connections from, both IPv4 and IPv6 hosts.

       Default value   0

Errors

EINVAL
           The requested option option_name is unknown.

Example

Settingalimitonthenumberofsockets.

           void *context = zmq_ctx_new ();
           zmq_ctx_set (context, ZMQ_MAX_SOCKETS, 256);
           int max_sockets = zmq_ctx_get (context, ZMQ_MAX_SOCKETS);
           assert (max_sockets == 256);

Name

       zmq_ctx_set - set context options

Return Value

       The zmq_ctx_set() function returns zero if successful. Otherwise it returns -1 and sets errno to one of
       the values defined below.

See Also

zmq_ctx_get(3) zmq(7)

Synopsis

intzmq_ctx_set(void*context,intoption_name,intoption_value);

See Also