1From 4cbb225811205b51b65371d0d8abc2d2af8233b6 Mon Sep 17 00:00:00 2001 2From: Khem Raj <raj.khem@gmail.com> 3Date: Thu, 26 Jan 2023 14:56:36 -0800 4Subject: [PATCH] Use std::atomic<int> instead of std::atomic<bool> 5 6GCC on RISCV does not yet support inline subword atomics [1] 7Therefore avoid them until fixed 8 9Upstream-Status: Pending 10 11[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104338 12 13Signed-off-by: Khem Raj <raj.khem@gmail.com> 14--- 15 Foundation/include/Poco/AsyncChannel.h | 2 +- 16 Foundation/src/AsyncChannel.cpp | 5 ++--- 17 2 files changed, 3 insertions(+), 4 deletions(-) 18 19diff --git a/Foundation/include/Poco/AsyncChannel.h b/Foundation/include/Poco/AsyncChannel.h 20index 190bae7dd..d73ea6c72 100644 21--- a/Foundation/include/Poco/AsyncChannel.h 22+++ b/Foundation/include/Poco/AsyncChannel.h 23@@ -111,7 +111,7 @@ private: 24 NotificationQueue _queue; 25 std::size_t _queueSize = 0; 26 std::size_t _dropCount = 0; 27- std::atomic<bool> _closed; 28+ std::atomic<int> _closed; 29 }; 30 31 32diff --git a/Foundation/src/AsyncChannel.cpp b/Foundation/src/AsyncChannel.cpp 33index 37cdec477..e829b180c 100644 34--- a/Foundation/src/AsyncChannel.cpp 35+++ b/Foundation/src/AsyncChannel.cpp 36@@ -48,11 +48,10 @@ private: 37 Message _msg; 38 }; 39 40- 41 AsyncChannel::AsyncChannel(Channel::Ptr pChannel, Thread::Priority prio): 42 _pChannel(pChannel), 43 _thread("AsyncChannel"), 44- _closed(false) 45+ _closed(0) 46 { 47 _thread.setPriority(prio); 48 } 49@@ -95,7 +94,7 @@ void AsyncChannel::open() 50 51 void AsyncChannel::close() 52 { 53- if (!_closed.exchange(true)) 54+ if (!_closed.exchange(1)) 55 { 56 if (_thread.isRunning()) 57 { 58-- 592.39.1 60 61