Provided by: libzmq3-dev_4.3.2-2ubuntu1_amd64 bug

NAME

       zmq_ctx_set - set context options

SYNOPSIS

       int zmq_ctx_set (void *context, int option_name, int option_value);

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: Fix blocky behavior
       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: Set number of I/O threads
       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: Set scheduling policy for I/O threads
       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: Set scheduling priority for I/O threads
       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 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: Add a CPU to list of affinity for I/O threads
       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: Remove a CPU to list of affinity for I/O threads
       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: Set name prefix for I/O threads
       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: Set maximum message size
       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_RCV: Specify message decoding strategy
       The ZMQ_ZERO_COPY_RCV 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: Set maximum number of sockets
       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   1024

   ZMQ_IPV6: Set IPv6 option
       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

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.

ERRORS

       EINVAL
           The requested option option_name is unknown.

EXAMPLE

       Setting a limit on the number of sockets.

           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);

SEE ALSO

       zmq_ctx_get(3) zmq(7)

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.