Blast-Radius Aware AI Code Review for Business-Critical Systems
LiveReview LiveReview Explore LiveReview

zmq_atomic_counter_new - create a new atomic counter

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_ATOMIC_COUNTER_N(3)

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.

Example

Testcodeforatomiccounters.

           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;

Name

       zmq_atomic_counter_new - create a new atomic counter

Return Value

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

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)

Synopsis

void*zmq_atomic_counter_new(void);

See Also