From 539a93f3e54e4013ce0fb82c2da6e1a1906c835c Mon Sep 17 00:00:00 2001 From: Djordje Nedic Date: Sun, 25 Feb 2024 22:40:58 +0100 Subject: [PATCH] change(docs): Move the trivial type limitation notice to the README --- README.md | 3 +++ docs/mpmc/priority_queue.md | 2 -- docs/mpmc/queue.md | 2 -- docs/spsc/bipartite_buf.md | 2 -- docs/spsc/priority_queue.md | 2 -- docs/spsc/queue.md | 2 -- docs/spsc/ring_buf.md | 2 -- 7 files changed, 3 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 7dcc229..ccfc322 100755 --- a/README.md +++ b/README.md @@ -43,6 +43,9 @@ On embedded systems, ```LOCKFREE_CACHE_COHERENT``` should almost always be set a Additionally, some systems have a non-typical cacheline length (for instance the apple M1/M2 CPUs have a cacheline length of 128 bytes), and ```LOCKFREE_CACHELINE_LENGTH``` should be set accordingly in those cases. +## Known limitations +All of the data structures in `lockfree` are only meant to be used for [trivial](https://en.cppreference.com/w/cpp/language/classes#Trivial_class) types. + ## FAQ ### Why would I use this over locking data structures on a hosted machine? diff --git a/docs/mpmc/priority_queue.md b/docs/mpmc/priority_queue.md index 73ffe4b..5c85133 100644 --- a/docs/mpmc/priority_queue.md +++ b/docs/mpmc/priority_queue.md @@ -3,8 +3,6 @@ ## When to use the Priority Queue The Priority Queue should be used when there are distinct priorities between elements to be enqueued, for instance different urgency signals between threads or packets of different priorities. -> Note: At the moment, the Queue is only meant to be used for [trivial](https://en.cppreference.com/w/cpp/language/classes#Trivial_class) types. - ## How to use Shown here is an example of typical use: * Initialization diff --git a/docs/mpmc/queue.md b/docs/mpmc/queue.md index 1b3f40c..fc013b2 100644 --- a/docs/mpmc/queue.md +++ b/docs/mpmc/queue.md @@ -3,8 +3,6 @@ ## When to use the Queue The Queue is the simplest data structure in the library, and it should be used when single element operations are dominant. It has the simplest API and lowest overhead per operation. -> Note: At the moment, the Queue is only meant to be used for [trivial](https://en.cppreference.com/w/cpp/language/classes#Trivial_class) types. - ## How to use Shown here is an example of typical use: * Initialization diff --git a/docs/spsc/bipartite_buf.md b/docs/spsc/bipartite_buf.md index 4c53925..ec3cdfb 100644 --- a/docs/spsc/bipartite_buf.md +++ b/docs/spsc/bipartite_buf.md @@ -7,8 +7,6 @@ A bipartite buffer should be used everywhere the Ring Buffer is used if you want * To process data inside the buffer without dequeueing it * When operations on data can fail or only some of the data is used -> Note: At the moment, the Bipartite Buffer is only meant to be used for [trivial](https://en.cppreference.com/w/cpp/language/classes#Trivial_class) types. - ## How to use Shown here is an example of typical use: * Initialization diff --git a/docs/spsc/priority_queue.md b/docs/spsc/priority_queue.md index ad10929..95da656 100644 --- a/docs/spsc/priority_queue.md +++ b/docs/spsc/priority_queue.md @@ -3,8 +3,6 @@ ## When to use the Priority Queue The Priority Queue should be used when there are distinct priorities between elements to be enqueued, for instance different urgency signals between threads or packets of different priorities. -> Note: At the moment, the Queue is only meant to be used for [trivial](https://en.cppreference.com/w/cpp/language/classes#Trivial_class) types. - ## How to use Shown here is an example of typical use: * Initialization diff --git a/docs/spsc/queue.md b/docs/spsc/queue.md index e421093..1ee4be4 100644 --- a/docs/spsc/queue.md +++ b/docs/spsc/queue.md @@ -3,8 +3,6 @@ ## When to use the Queue Queue is the simplest data structure in the library, and it should be used when single element operations are dominant. It has the simplest API and lowest overhead per operation. -> Note: At the moment, the Queue is only meant to be used for [trivial](https://en.cppreference.com/w/cpp/language/classes#Trivial_class) types. - ## How to use Shown here is an example of typical use: * Initialization diff --git a/docs/spsc/ring_buf.md b/docs/spsc/ring_buf.md index a5f3091..eaa5959 100644 --- a/docs/spsc/ring_buf.md +++ b/docs/spsc/ring_buf.md @@ -5,8 +5,6 @@ * For byte streams where variably sized packets need to be enqueued but sent `n` bytes at a time * When operations on data can fail or only some of the data is used -> Note: At the moment, the Ring Buffer is only meant to be used for [trivial](https://en.cppreference.com/w/cpp/language/classes#Trivial_class) types. - ## How to use There are three API types that can be used: * A raw pointer and element count API