Browse Source
Merge pull request #2077 from lioncash/virt
kernel/wait_object: Devirtualize functions related to manipulating the thread list directly
pull/15/merge
bunnei
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with
3 additions and
15 deletions
-
src/core/hle/kernel/readable_event.cpp
-
src/core/hle/kernel/readable_event.h
-
src/core/hle/kernel/timer.cpp
-
src/core/hle/kernel/timer.h
-
src/core/hle/kernel/wait_object.h
|
|
|
@ -44,8 +44,4 @@ ResultCode ReadableEvent::Reset() { |
|
|
|
return RESULT_SUCCESS; |
|
|
|
} |
|
|
|
|
|
|
|
void ReadableEvent::WakeupAllWaitingThreads() { |
|
|
|
WaitObject::WakeupAllWaitingThreads(); |
|
|
|
} |
|
|
|
|
|
|
|
} // namespace Kernel
|
|
|
|
@ -39,8 +39,6 @@ public: |
|
|
|
bool ShouldWait(Thread* thread) const override; |
|
|
|
void Acquire(Thread* thread) override; |
|
|
|
|
|
|
|
void WakeupAllWaitingThreads() override; |
|
|
|
|
|
|
|
/// Unconditionally clears the readable event's state. |
|
|
|
void Clear(); |
|
|
|
|
|
|
|
|
|
|
|
@ -66,10 +66,6 @@ void Timer::Clear() { |
|
|
|
signaled = false; |
|
|
|
} |
|
|
|
|
|
|
|
void Timer::WakeupAllWaitingThreads() { |
|
|
|
WaitObject::WakeupAllWaitingThreads(); |
|
|
|
} |
|
|
|
|
|
|
|
void Timer::Signal(int cycles_late) { |
|
|
|
LOG_TRACE(Kernel, "Timer {} fired", GetObjectId()); |
|
|
|
|
|
|
|
|
|
|
|
@ -51,8 +51,6 @@ public: |
|
|
|
bool ShouldWait(Thread* thread) const override; |
|
|
|
void Acquire(Thread* thread) override; |
|
|
|
|
|
|
|
void WakeupAllWaitingThreads() override; |
|
|
|
|
|
|
|
/** |
|
|
|
* Starts the timer, with the specified initial delay and interval. |
|
|
|
* @param initial Delay until the timer is first fired |
|
|
|
|
|
|
|
@ -33,19 +33,19 @@ public: |
|
|
|
* Add a thread to wait on this object |
|
|
|
* @param thread Pointer to thread to add |
|
|
|
*/ |
|
|
|
virtual void AddWaitingThread(SharedPtr<Thread> thread); |
|
|
|
void AddWaitingThread(SharedPtr<Thread> thread); |
|
|
|
|
|
|
|
/** |
|
|
|
* Removes a thread from waiting on this object (e.g. if it was resumed already) |
|
|
|
* @param thread Pointer to thread to remove |
|
|
|
*/ |
|
|
|
virtual void RemoveWaitingThread(Thread* thread); |
|
|
|
void RemoveWaitingThread(Thread* thread); |
|
|
|
|
|
|
|
/** |
|
|
|
* Wake up all threads waiting on this object that can be awoken, in priority order, |
|
|
|
* and set the synchronization result and output of the thread. |
|
|
|
*/ |
|
|
|
virtual void WakeupAllWaitingThreads(); |
|
|
|
void WakeupAllWaitingThreads(); |
|
|
|
|
|
|
|
/** |
|
|
|
* Wakes up a single thread waiting on this object. |
|
|
|
|