diff options
| author | 2017-01-01 19:23:19 -0500 | |
|---|---|---|
| committer | 2017-01-05 13:06:17 -0500 | |
| commit | e52ca85711e8df54c8eafe556b6ba0ca683ddea0 (patch) | |
| tree | 5a5842cdea80d830d4295d9a96cb5ff4bfd9162d /src/core/hle/kernel/event.cpp | |
| parent | Merge pull request #2390 from jroweboy/bintray (diff) | |
| download | yuzu-e52ca85711e8df54c8eafe556b6ba0ca683ddea0.tar.gz yuzu-e52ca85711e8df54c8eafe556b6ba0ca683ddea0.tar.xz yuzu-e52ca85711e8df54c8eafe556b6ba0ca683ddea0.zip | |
Kernel: Implemented Pulse event and timers.
Closes #1904
Diffstat (limited to 'src/core/hle/kernel/event.cpp')
| -rw-r--r-- | src/core/hle/kernel/event.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/core/hle/kernel/event.cpp b/src/core/hle/kernel/event.cpp index 3e116e3df..a515f53f9 100644 --- a/src/core/hle/kernel/event.cpp +++ b/src/core/hle/kernel/event.cpp | |||
| @@ -22,11 +22,6 @@ SharedPtr<Event> Event::Create(ResetType reset_type, std::string name) { | |||
| 22 | evt->reset_type = reset_type; | 22 | evt->reset_type = reset_type; |
| 23 | evt->name = std::move(name); | 23 | evt->name = std::move(name); |
| 24 | 24 | ||
| 25 | if (reset_type == ResetType::Pulse) { | ||
| 26 | LOG_ERROR(Kernel, "Unimplemented event reset type Pulse"); | ||
| 27 | UNIMPLEMENTED(); | ||
| 28 | } | ||
| 29 | |||
| 30 | return evt; | 25 | return evt; |
| 31 | } | 26 | } |
| 32 | 27 | ||
| @@ -37,8 +32,7 @@ bool Event::ShouldWait() { | |||
| 37 | void Event::Acquire() { | 32 | void Event::Acquire() { |
| 38 | ASSERT_MSG(!ShouldWait(), "object unavailable!"); | 33 | ASSERT_MSG(!ShouldWait(), "object unavailable!"); |
| 39 | 34 | ||
| 40 | // Release the event if it's not sticky... | 35 | if (reset_type == ResetType::OneShot) |
| 41 | if (reset_type != ResetType::Sticky) | ||
| 42 | signaled = false; | 36 | signaled = false; |
| 43 | } | 37 | } |
| 44 | 38 | ||
| @@ -51,4 +45,11 @@ void Event::Clear() { | |||
| 51 | signaled = false; | 45 | signaled = false; |
| 52 | } | 46 | } |
| 53 | 47 | ||
| 48 | void Event::WakeupAllWaitingThreads() { | ||
| 49 | WaitObject::WakeupAllWaitingThreads(); | ||
| 50 | |||
| 51 | if (reset_type == ResetType::Pulse) | ||
| 52 | signaled = false; | ||
| 53 | } | ||
| 54 | |||
| 54 | } // namespace | 55 | } // namespace |