Iros
Loading...
Searching...
No Matches
spinlock.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/sync/atomic.h
"
4
#include "
di/util/immovable.h
"
5
#include "
iris/core/interrupt_disabler.h
"
6
7
namespace
iris
{
8
class
Spinlock
:
di::util::Immovable
{
9
public
:
10
Spinlock
() =
default
;
11
12
void
lock
();
13
auto
try_lock
() -> bool;
14
void
unlock
();
15
16
private
:
17
di::sync::Atomic<bool>
m_state {
false
};
18
bool
m_interrupts_were_disabled {
false
};
19
};
20
}
atomic.h
di::sync::Atomic
Definition
atomic.h:15
iris::Spinlock::lock
void lock()
Definition
spinlock.cpp:6
iris::Spinlock::unlock
void unlock()
Definition
spinlock.cpp:30
iris::Spinlock::Spinlock
Spinlock()=default
iris::Spinlock::try_lock
auto try_lock() -> bool
Definition
spinlock.cpp:17
interrupt_disabler.h
immovable.h
iris
Definition
cxx_init.cpp:12
di::util::Immovable
Definition
immovable.h:4
iris
include
iris
core
spinlock.h
Generated by
1.13.0