Provided by: libzmq3-dev_4.3.4-2_amd64 bug

NAME

       zmq_atomic_counter_new - create a new atomic counter

SYNOPSIS

       void *zmq_atomic_counter_new (void);

DESCRIPTION

       The zmq_atomic_counter_new function creates a new atomic counter. You can use this in
       multithreaded applications to do, for example, reference counting of shared objects. The
       atomic counter is at least 32 bits large. This function uses platform specific atomic
       operations.

RETURN VALUE

       The zmq_atomic_counter_new() function returns the new atomic counter if successful.
       Otherwise it returns NULL.

EXAMPLE

       Test code for atomic counters.

           void *counter = zmq_atomic_counter_new ();
           assert (zmq_atomic_counter_value (counter) == 0);
           assert (zmq_atomic_counter_inc (counter) == 0);
           assert (zmq_atomic_counter_inc (counter) == 1);
           assert (zmq_atomic_counter_inc (counter) == 2);
           assert (zmq_atomic_counter_value (counter) == 3);
           assert (zmq_atomic_counter_dec (counter) == 1);
           assert (zmq_atomic_counter_dec (counter) == 1);
           assert (zmq_atomic_counter_dec (counter) == 0);
           zmq_atomic_counter_set (counter, 2);
           assert (zmq_atomic_counter_dec (counter) == 1);
           assert (zmq_atomic_counter_dec (counter) == 0);
           zmq_atomic_counter_destroy (&counter);
           return 0;

SEE ALSO

       zmq_atomic_counter_set(3) zmq_atomic_counter_inc(3) zmq_atomic_counter_dec(3)
       zmq_atomic_counter_value(3) zmq_atomic_counter_destroy(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.