diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-09-29 11:54:20 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-09-29 11:54:20 +0200 |
| commit | 2315e95d48337aa612b2bb20b5f8d3d0e061716c (patch) | |
| tree | e8ef36a50fe11dea2fe29aec5332c2baedac5be6 /kernel | |
| parent | 61deb2cc5ffe086f83908ea9b980f7d8dab0198a (diff) | |
| download | kernel-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.cpp | 17 |
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 |
