summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/event.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/kernel/event.cpp')
-rw-r--r--src/core/hle/kernel/event.cpp53
1 files changed, 0 insertions, 53 deletions
diff --git a/src/core/hle/kernel/event.cpp b/src/core/hle/kernel/event.cpp
deleted file mode 100644
index 8967e602e..000000000
--- a/src/core/hle/kernel/event.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
1// Copyright 2014 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include <algorithm>
6#include "common/assert.h"
7#include "core/hle/kernel/event.h"
8#include "core/hle/kernel/object.h"
9#include "core/hle/kernel/thread.h"
10
11namespace Kernel {
12
13Event::Event(KernelCore& kernel) : WaitObject{kernel} {}
14Event::~Event() = default;
15
16SharedPtr<Event> Event::Create(KernelCore& kernel, ResetType reset_type, std::string name) {
17 SharedPtr<Event> evt(new Event(kernel));
18
19 evt->signaled = false;
20 evt->reset_type = reset_type;
21 evt->name = std::move(name);
22
23 return evt;
24}
25
26bool Event::ShouldWait(Thread* thread) const {
27 return !signaled;
28}
29
30void Event::Acquire(Thread* thread) {
31 ASSERT_MSG(!ShouldWait(thread), "object unavailable!");
32
33 if (reset_type == ResetType::OneShot)
34 signaled = false;
35}
36
37void Event::Signal() {
38 signaled = true;
39 WakeupAllWaitingThreads();
40}
41
42void Event::Clear() {
43 signaled = false;
44}
45
46void Event::WakeupAllWaitingThreads() {
47 WaitObject::WakeupAllWaitingThreads();
48
49 if (reset_type == ResetType::Pulse)
50 signaled = false;
51}
52
53} // namespace Kernel