mirror of
https://github.com/zeromq/libzmq.git
synced 2025-03-19 09:53:51 +00:00
Solution: as libzmq already provides this across all platforms, expose an atomic counter API. I've not wrapped atomic pointers, though someone who needs this may want to do so.
61 lines
1.5 KiB
Plaintext
61 lines
1.5 KiB
Plaintext
zmq_atomic_counter_inc(3)
|
|
=========================
|
|
|
|
|
|
NAME
|
|
----
|
|
zmq_atomic_counter_inc - increment an atomic counter
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
*int zmq_atomic_counter_inc (void *counter);*
|
|
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
The _zmq_atomic_counter_inc_ function increments an atomic counter in a
|
|
threadsafe fashion. This function uses platform specific atomic
|
|
operations.
|
|
|
|
|
|
RETURN VALUE
|
|
------------
|
|
The _zmq_atomic_counter_inc()_ function returns the old value of the
|
|
counter, before incrementing.
|
|
|
|
|
|
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) == true);
|
|
assert (zmq_atomic_counter_dec (counter) == true);
|
|
assert (zmq_atomic_counter_dec (counter) == false);
|
|
zmq_atomic_counter_set (counter, 2);
|
|
assert (zmq_atomic_counter_dec (counter) == true);
|
|
assert (zmq_atomic_counter_dec (counter) == false);
|
|
zmq_atomic_counter_destroy (&counter);
|
|
----
|
|
|
|
|
|
SEE ALSO
|
|
--------
|
|
linkzmq:zmq_atomic_counter_new[3]
|
|
linkzmq:zmq_atomic_counter_set[3]
|
|
linkzmq:zmq_atomic_counter_dec[3]
|
|
linkzmq:zmq_atomic_counter_value[3]
|
|
linkzmq: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>.
|