20#include "pedigree/kernel/machine/SchedulerTimer.h"
21#include "pedigree/kernel/machine/SchedulerTimerDispatchCleanup.h"
22#include "pedigree/kernel/process/Thread.h"
23#include "pedigree/kernel/processor/Processor.h"
24#include "pedigree/kernel/processor/ProcessorInformation.h"
29SchedulerTimerDispatchCleanup::SchedulerTimerDispatchCleanup(
31 : m_Dispatch(dispatch),
32 m_Thread(
Processor::information().getCurrentThread()),
41 m_Thread->armAtomicStateCleanup(m_Cleanup, abandon,
this);
45SchedulerTimerDispatchCleanup::~SchedulerTimerDispatchCleanup() {
52 m_Thread->disarmAtomicStateCleanup(m_Cleanup);
56void SchedulerTimerDispatchCleanup::abandon(
void* context) {
64void SchedulerTimerDispatchCleanup::release() {
81 if (Processor::inHostedSignalFrame() || current->getHostedSignalDepth()) {
static ProcessorInformation & information()
static ExecutionContext executionContext()
static bool canRemoveHandlerInCurrentContext()
virtual ~SchedulerTimer()