aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-09-29 11:54:20 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-09-29 11:54:20 +0200
commit2315e95d48337aa612b2bb20b5f8d3d0e061716c (patch)
treee8ef36a50fe11dea2fe29aec5332c2baedac5be6 /kernel
parent61deb2cc5ffe086f83908ea9b980f7d8dab0198a (diff)
downloadkernel-2315e95d48337aa612b2bb20b5f8d3d0e061716c.tar.xz
kernel-2315e95d48337aa612b2bb20b5f8d3d0e061716c.zip
kapi/interrupts: tests: fix state data race
Diffstat (limited to 'kernel')
-rw-r--r--kernel/kernel/test_support/kapi/interrupts.cpp17
1 files changed, 3 insertions, 14 deletions
diff --git a/kernel/kernel/test_support/kapi/interrupts.cpp b/kernel/kernel/test_support/kapi/interrupts.cpp
index 9bd3a515..3791b0dc 100644
--- a/kernel/kernel/test_support/kapi/interrupts.cpp
+++ b/kernel/kernel/test_support/kapi/interrupts.cpp
@@ -1,32 +1,21 @@
#include <kapi/interrupts.hpp>
-#include <atomic>
-#include <map>
-#include <thread>
-
namespace kapi::interrupts
{
namespace
{
- std::map<std::thread::id, std::atomic_flag> interrupt_state{};
+ thread_local bool interrupt_state{};
}
auto enabled() -> bool
{
- return interrupt_state[std::this_thread::get_id()].test();
+ return interrupt_state;
}
auto enabled(bool value) -> void
{
- if (value)
- {
- interrupt_state[std::this_thread::get_id()].test_and_set(std::memory_order::relaxed);
- }
- else
- {
- interrupt_state[std::this_thread::get_id()].clear(std::memory_order::relaxed);
- }
+ interrupt_state = value;
}
} // namespace kapi::interrupts \ No newline at end of file