From 7be24c4ca4eaba0e620b1c7d754eed3367647e36 Mon Sep 17 00:00:00 2001 From: Djordje Nedic Date: Sat, 27 May 2023 17:31:02 +0200 Subject: [PATCH] Release 2.0.0 --- CHANGELOG.md | 6 ++++++ CMakeLists.txt | 2 +- lockfree/lockfree.hpp | 6 +++--- lockfree/mpmc/priority_queue.hpp | 6 +++--- lockfree/mpmc/priority_queue_impl.hpp | 6 +++--- lockfree/mpmc/queue.hpp | 6 +++--- lockfree/mpmc/queue_impl.hpp | 6 +++--- lockfree/spsc/bipartite_buf.hpp | 6 +++--- lockfree/spsc/bipartite_buf_impl.hpp | 6 +++--- lockfree/spsc/priority_queue.hpp | 6 +++--- lockfree/spsc/priority_queue_impl.hpp | 6 +++--- lockfree/spsc/queue.hpp | 6 +++--- lockfree/spsc/queue_impl.hpp | 6 +++--- lockfree/spsc/ring_buf.hpp | 6 +++--- lockfree/spsc/ring_buf_impl.hpp | 6 +++--- 15 files changed, 46 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 341a3d2..6f0f87a 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 2.0.0 + +- Added multi-producer multi-consumer [Queue](docs/mpmc/queue.md) and [Priority Queue](docs/mpmc/priority_queue.md) data structures +- **Important**: SPSC data structures have been moved to the `spsc` namespace +- **Important**: Cacheline padding is now the default behaviour as analytics showed most people are using the library on cache coherent systems, for embedded systems it is necessary to set `LOCKFREE_CACHE_COHERENT` to `false` to avoid wasting memory + ## 1.1.0 - Added the [Priority Queue](docs/spsc/priority_queue.md) data structure diff --git a/CMakeLists.txt b/CMakeLists.txt index b1d01f1..9b85b2b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.16) project(lockfree - VERSION 1.1.0 + VERSION 2.0.0 LANGUAGES CXX ) diff --git a/lockfree/lockfree.hpp b/lockfree/lockfree.hpp index 4e9c03e..0147f7b 100644 --- a/lockfree/lockfree.hpp +++ b/lockfree/lockfree.hpp @@ -3,8 +3,8 @@ * @brief A collection of lock free data structures written in * standard c++11 suitable for all systems, from low-end * microcontrollers to HPC machines. - * @version 1.1.0 - * @date 19. May 2023 + * @version 2.0.0 + * @date 27. May 2023 * @author Djordje Nedic **************************************************************/ @@ -36,7 +36,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v1.1.0 + * Version: v2.0.0 **************************************************************/ /************************** DEFINE ****************************/ diff --git a/lockfree/mpmc/priority_queue.hpp b/lockfree/mpmc/priority_queue.hpp index 79831cf..93d3444 100644 --- a/lockfree/mpmc/priority_queue.hpp +++ b/lockfree/mpmc/priority_queue.hpp @@ -4,8 +4,8 @@ * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 1.1.0 - * @date 19. May 2023 + * @version 2.0.0 + * @date 27. May 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v1.1.0 + * Version: v2.0.0 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/mpmc/priority_queue_impl.hpp b/lockfree/mpmc/priority_queue_impl.hpp index b7f5ba3..20ed48e 100644 --- a/lockfree/mpmc/priority_queue_impl.hpp +++ b/lockfree/mpmc/priority_queue_impl.hpp @@ -4,8 +4,8 @@ * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 1.1.0 - * @date 19. May 2023 + * @version 2.0.0 + * @date 27. May 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v1.1.0 + * Version: v2.0.0 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/mpmc/queue.hpp b/lockfree/mpmc/queue.hpp index b30e6f7..6b21f2f 100755 --- a/lockfree/mpmc/queue.hpp +++ b/lockfree/mpmc/queue.hpp @@ -3,8 +3,8 @@ * @brief A queue implementation written in standard c++11 * suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for all scenarios. - * @version 1.1.0 - * @date 19. May 2023 + * @version 2.0.0 + * @date 27. May 2023 * @author Djordje Nedic **************************************************************/ @@ -36,7 +36,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v1.1.0 + * Version: v2.0.0 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/mpmc/queue_impl.hpp b/lockfree/mpmc/queue_impl.hpp index 01ca5d1..c68032e 100644 --- a/lockfree/mpmc/queue_impl.hpp +++ b/lockfree/mpmc/queue_impl.hpp @@ -3,8 +3,8 @@ * @brief A queue implementation written in standard c++11 * suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for all scenarios. - * @version 1.1.0 - * @date 19. May 2023 + * @version 2.0.0 + * @date 27. May 2023 * @author Djordje Nedic **************************************************************/ @@ -36,7 +36,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v1.1.0 + * Version: v2.0.0 **************************************************************/ /********************** PUBLIC METHODS ************************/ diff --git a/lockfree/spsc/bipartite_buf.hpp b/lockfree/spsc/bipartite_buf.hpp index babdea4..0af2bea 100755 --- a/lockfree/spsc/bipartite_buf.hpp +++ b/lockfree/spsc/bipartite_buf.hpp @@ -4,8 +4,8 @@ * standard c++11 suitable for all systems, from low-end * microcontrollers to HPC machines. * Lock-free for single consumer single producer scenarios. - * @version 1.2.0 - * @date 19. May 2023 + * @version 2.0.0 + * @date 27. May 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v1.1.0 + * Version: v2.0.0 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/spsc/bipartite_buf_impl.hpp b/lockfree/spsc/bipartite_buf_impl.hpp index f3dee27..ae1b4c0 100644 --- a/lockfree/spsc/bipartite_buf_impl.hpp +++ b/lockfree/spsc/bipartite_buf_impl.hpp @@ -4,8 +4,8 @@ * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 1.2.0 - * @date 19. May 2023 + * @version 2.0.0 + * @date 27. May 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v1.1.0 + * Version: v2.0.0 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/spsc/priority_queue.hpp b/lockfree/spsc/priority_queue.hpp index 95e58ab..577c832 100644 --- a/lockfree/spsc/priority_queue.hpp +++ b/lockfree/spsc/priority_queue.hpp @@ -4,8 +4,8 @@ * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 1.1.0 - * @date 19. May 2023 + * @version 2.0.0 + * @date 27. May 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v1.1.0 + * Version: v2.0.0 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/spsc/priority_queue_impl.hpp b/lockfree/spsc/priority_queue_impl.hpp index b7f5ba3..20ed48e 100644 --- a/lockfree/spsc/priority_queue_impl.hpp +++ b/lockfree/spsc/priority_queue_impl.hpp @@ -4,8 +4,8 @@ * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 1.1.0 - * @date 19. May 2023 + * @version 2.0.0 + * @date 27. May 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v1.1.0 + * Version: v2.0.0 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/spsc/queue.hpp b/lockfree/spsc/queue.hpp index 95217f3..3a863d2 100755 --- a/lockfree/spsc/queue.hpp +++ b/lockfree/spsc/queue.hpp @@ -4,8 +4,8 @@ * suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 1.1.0 - * @date 19. May 2023 + * @version 2.0.0 + * @date 27. May 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v1.1.0 + * Version: v2.0.0 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/spsc/queue_impl.hpp b/lockfree/spsc/queue_impl.hpp index 41242a1..bf658ae 100644 --- a/lockfree/spsc/queue_impl.hpp +++ b/lockfree/spsc/queue_impl.hpp @@ -4,8 +4,8 @@ * suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 1.1.0 - * @date 19. May 2023 + * @version 2.0.0 + * @date 27. May 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v1.1.0 + * Version: v2.0.0 **************************************************************/ /********************** PUBLIC METHODS ************************/ diff --git a/lockfree/spsc/ring_buf.hpp b/lockfree/spsc/ring_buf.hpp index 938d37c..ec0a5a7 100755 --- a/lockfree/spsc/ring_buf.hpp +++ b/lockfree/spsc/ring_buf.hpp @@ -4,8 +4,8 @@ * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 1.1.0 - * @date 19. May 2023 + * @version 2.0.0 + * @date 27. May 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v1.1.0 + * Version: v2.0.0 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/spsc/ring_buf_impl.hpp b/lockfree/spsc/ring_buf_impl.hpp index 86662cf..455139a 100644 --- a/lockfree/spsc/ring_buf_impl.hpp +++ b/lockfree/spsc/ring_buf_impl.hpp @@ -4,8 +4,8 @@ * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 1.1.0 - * @date 19. May 2023 + * @version 2.0.0 + * @date 27. May 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v1.1.0 + * Version: v2.0.0 **************************************************************/ /********************** PUBLIC METHODS ************************/