This class implements a lock-free queue.
More...
#include "nn/nlib/LockFree.h"
template<class T>
class nn::nlib::LockFreeQueue< T >
This class implements a lock-free queue.
- Template Parameters
-
T | The queue element type. This type must be POD . |
- Description
- The
Enqueue()
and Dequeue()
member functions are thread-safe. If you specify a pointer type for T
, executing DestructorForLockFree
deletes objects of the T
type added to the queue.
- Sample code
LockFreeQueue<MyClass*> queue;
e = queue.Init(1024);
if (e != 0) {
}
.....
MyClass* elem = new MyClass();
.....
e = queue.Enqueue(elem);
if (e != 0) {
}
.....
e = queue.Dequeue(x);
if (e != 0) {
}
.....
Definition at line 524 of file LockFree.h.
Destructor.
- Description
- Uses
DestructorForLockFree
to delete each of remaining elements, if any. If necessary, specialize a function template to perform necessary processing..
Definition at line 528 of file LockFree.h.
Picks up an element from the queue and stores it in x. This is thread-safe.
- Parameters
-
[in] | x | The region that stores elements picked up from the queue. |
- Return values
-
0 | Success. |
EAGAIN | The queue is empty. |
Definition at line 539 of file LockFree.h.
Picks up an element from the queue and stores it in x. This is not thread-safe.
- Parameters
-
[in] | x | The region that stores elements picked up from the queue. |
- Return values
-
0 | Success. |
EAGAIN | The queue is empty. |
Definition at line 543 of file LockFree.h.
Adds the element x to the queue. This is thread-safe.
- Parameters
-
[in] | x | The element to be added to the queue. |
- Return values
-
0 | Success. |
EAGAIN | The queue is full. |
Definition at line 538 of file LockFree.h.
Adds the element x to the queue. This is not thread-safe.
- Parameters
-
[in] | x | The element to be added to the queue. |
- Return values
-
0 | Success. |
EAGAIN | The queue is full. |
Definition at line 541 of file LockFree.h.
Initializes the queue. This is not thread-safe.
- Parameters
-
[in] | count | The number of elements that can be added to the queue. |
- Return values
-
0 | Success. |
ENOMEM | Memory allocation has failed. |
EALREADY | Already initialized. |
Definition at line 532 of file LockFree.h.
The documentation for this class was generated from the following files: