mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-13 02:42:58 +01: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.
62 lines
1.6 KiB
Plaintext
62 lines
1.6 KiB
Plaintext
zmq_atomic_counter_destroy(3)
|
|
=============================
|
|
|
|
|
|
NAME
|
|
----
|
|
zmq_atomic_counter_destroy - destroy an atomic counter
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
*void zmq_atomic_counter_destroy (void **counter_p);*
|
|
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
The _zmq_atomic_counter_destroy_ function destroys an atomic counter and
|
|
nullifies its reference. Pass the address of an atomic counter (void **)
|
|
rather than the counter itself. You must destroy all counters that you
|
|
create, to avoid memory leakage. This function uses platform specific
|
|
atomic operations.
|
|
|
|
|
|
RETURN VALUE
|
|
------------
|
|
The _zmq_atomic_counter_destroy()_ function has no return value.
|
|
|
|
|
|
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_value[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>.
|