mirror of
https://github.com/zeromq/libzmq.git
synced 2025-01-14 17:58:01 +08:00
2de940b422
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.
60 lines
1.5 KiB
Plaintext
60 lines
1.5 KiB
Plaintext
zmq_atomic_counter_value(3)
|
|
===========================
|
|
|
|
|
|
NAME
|
|
----
|
|
zmq_atomic_counter_value - return value of atomic counter
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
*int zmq_atomic_counter_value (void *counter);*
|
|
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
The _zmq_atomic_counter_value_ function returns the value of an atomic
|
|
counter. This function uses platform specific atomic operations.
|
|
|
|
|
|
RETURN VALUE
|
|
------------
|
|
The _zmq_atomic_counter_value()_ 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) == 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_inc[3]
|
|
linkzmq:zmq_atomic_counter_dec[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>.
|