[Live-devel] [PATCH v1] BasicUsageEnvironment: fix compilation on older toolchains
Thomas Devoogdt
thomas at devoogdt.com
Tue Jun 9 08:15:18 PDT 2026
$ ./genMakefiles linux-64bit && make
```
BasicTaskScheduler.cpp: In member function ‘virtual void BasicTaskScheduler::SingleStep(unsigned int)’:
BasicTaskScheduler.cpp:191:40: error: ‘struct std::atomic_flag’ has no member named ‘test’
191 | if (fTriggersAwaitingHandling[i].test()) {
| ^~~~
```
https://en.cppreference.com/cpp/atomic/atomic_flag/test
test() is a C++20 feature, the code base does not require C++20
anywhere, so just use test_and_set() to allow compilation with C++11
Signed-off-by: Thomas Devoogdt <thomas at devoogdt.com>
---
BasicUsageEnvironment/BasicTaskScheduler.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BasicUsageEnvironment/BasicTaskScheduler.cpp b/BasicUsageEnvironment/BasicTaskScheduler.cpp
index 6d16844a..a4a12de1 100644
--- a/BasicUsageEnvironment/BasicTaskScheduler.cpp
+++ b/BasicUsageEnvironment/BasicTaskScheduler.cpp
@@ -188,7 +188,7 @@ void BasicTaskScheduler::SingleStep(unsigned maxDelayTime) {
if (mask == 0) mask = EVENT_TRIGGER_ID_HIGH_BIT;
#ifndef NO_STD_LIB
- if (fTriggersAwaitingHandling[i].test()) {
+ if (fTriggersAwaitingHandling[i].test_and_set()) {
fTriggersAwaitingHandling[i].clear();
#else
if (fTriggersAwaitingHandling[i]) {
--
2.43.0
More information about the live-devel
mailing list