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_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