mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-22 17:25:46 +00:00
kernel/event: Reference ReadableEvent from WritableEvent
This commit is contained in:
parent
ff610103b5
commit
a342bcc9b1
32 changed files with 175 additions and 317 deletions
|
@ -15,34 +15,30 @@ ReadableEvent::ReadableEvent(KernelCore& kernel) : WaitObject{kernel} {}
|
|||
ReadableEvent::~ReadableEvent() = default;
|
||||
|
||||
bool ReadableEvent::ShouldWait(Thread* thread) const {
|
||||
return !writable_event->IsSignaled();
|
||||
return !signaled;
|
||||
}
|
||||
|
||||
void ReadableEvent::Acquire(Thread* thread) {
|
||||
ASSERT_MSG(!ShouldWait(thread), "object unavailable!");
|
||||
|
||||
writable_event->ResetOnAcquire();
|
||||
}
|
||||
|
||||
void ReadableEvent::AddWaitingThread(SharedPtr<Thread> thread) {
|
||||
writable_event->AddWaitingThread(thread);
|
||||
}
|
||||
|
||||
void ReadableEvent::RemoveWaitingThread(Thread* thread) {
|
||||
writable_event->RemoveWaitingThread(thread);
|
||||
if (reset_type == ResetType::OneShot)
|
||||
signaled = false;
|
||||
}
|
||||
|
||||
void ReadableEvent::Signal() {
|
||||
writable_event->Signal();
|
||||
signaled = true;
|
||||
WakeupAllWaitingThreads();
|
||||
}
|
||||
|
||||
void ReadableEvent::Clear() {
|
||||
writable_event->Clear();
|
||||
signaled = false;
|
||||
}
|
||||
|
||||
void ReadableEvent::WakeupAllWaitingThreads() {
|
||||
writable_event->WakeupAllWaitingThreads();
|
||||
writable_event->ResetOnWakeup();
|
||||
WaitObject::WakeupAllWaitingThreads();
|
||||
|
||||
if (reset_type == ResetType::Pulse)
|
||||
signaled = false;
|
||||
}
|
||||
|
||||
} // namespace Kernel
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue