diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-09-29 11:30:12 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-09-29 11:30:12 +0200 |
| commit | 61deb2cc5ffe086f83908ea9b980f7d8dab0198a (patch) | |
| tree | 358469628c5cad81cb53b7cb82d1dc9a4950d480 /kernel | |
| parent | c35fe2ecfe1eba2911d155ad5ade41ca18a765ff (diff) | |
| download | kernel-61deb2cc5ffe086f83908ea9b980f7d8dab0198a.tar.xz kernel-61deb2cc5ffe086f83908ea9b980f7d8dab0198a.zip | |
kapi/interrupts: tests: make IRQ state thread specific
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/kernel/test_support/kapi/interrupts.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/kernel/kernel/test_support/kapi/interrupts.cpp b/kernel/kernel/test_support/kapi/interrupts.cpp index 79b03729..9bd3a515 100644 --- a/kernel/kernel/test_support/kapi/interrupts.cpp +++ b/kernel/kernel/test_support/kapi/interrupts.cpp @@ -1,23 +1,32 @@ #include <kapi/interrupts.hpp> #include <atomic> +#include <map> +#include <thread> namespace kapi::interrupts { namespace { - std::atomic_bool interrupt_state = false; + std::map<std::thread::id, std::atomic_flag> interrupt_state{}; } auto enabled() -> bool { - return interrupt_state.load(std::memory_order::relaxed); + return interrupt_state[std::this_thread::get_id()].test(); } auto enabled(bool value) -> void { - interrupt_state.store(value, std::memory_order::relaxed); + 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); + } } } // namespace kapi::interrupts
\ No newline at end of file |
