Browse Source

Merge pull request #2077 from lioncash/virt

kernel/wait_object: Devirtualize functions related to manipulating the thread list directly
nce_cpp
bunnei 7 years ago
committed by GitHub
parent
commit
b36d0deee7
  1. 4
      src/core/hle/kernel/readable_event.cpp
  2. 2
      src/core/hle/kernel/readable_event.h
  3. 4
      src/core/hle/kernel/timer.cpp
  4. 2
      src/core/hle/kernel/timer.h
  5. 6
      src/core/hle/kernel/wait_object.h

4
src/core/hle/kernel/readable_event.cpp

@ -44,8 +44,4 @@ ResultCode ReadableEvent::Reset() {
return RESULT_SUCCESS; return RESULT_SUCCESS;
} }
void ReadableEvent::WakeupAllWaitingThreads() {
WaitObject::WakeupAllWaitingThreads();
}
} // namespace Kernel } // namespace Kernel

2
src/core/hle/kernel/readable_event.h

@ -39,8 +39,6 @@ public:
bool ShouldWait(Thread* thread) const override; bool ShouldWait(Thread* thread) const override;
void Acquire(Thread* thread) override; void Acquire(Thread* thread) override;
void WakeupAllWaitingThreads() override;
/// Unconditionally clears the readable event's state. /// Unconditionally clears the readable event's state.
void Clear(); void Clear();

4
src/core/hle/kernel/timer.cpp

@ -66,10 +66,6 @@ void Timer::Clear() {
signaled = false; signaled = false;
} }
void Timer::WakeupAllWaitingThreads() {
WaitObject::WakeupAllWaitingThreads();
}
void Timer::Signal(int cycles_late) { void Timer::Signal(int cycles_late) {
LOG_TRACE(Kernel, "Timer {} fired", GetObjectId()); LOG_TRACE(Kernel, "Timer {} fired", GetObjectId());

2
src/core/hle/kernel/timer.h

@ -51,8 +51,6 @@ public:
bool ShouldWait(Thread* thread) const override; bool ShouldWait(Thread* thread) const override;
void Acquire(Thread* thread) override; void Acquire(Thread* thread) override;
void WakeupAllWaitingThreads() override;
/** /**
* Starts the timer, with the specified initial delay and interval. * Starts the timer, with the specified initial delay and interval.
* @param initial Delay until the timer is first fired * @param initial Delay until the timer is first fired

6
src/core/hle/kernel/wait_object.h

@ -33,19 +33,19 @@ public:
* Add a thread to wait on this object * Add a thread to wait on this object
* @param thread Pointer to thread to add * @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) * Removes a thread from waiting on this object (e.g. if it was resumed already)
* @param thread Pointer to thread to remove * @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, * 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. * and set the synchronization result and output of the thread.
*/ */
virtual void WakeupAllWaitingThreads();
void WakeupAllWaitingThreads();
/** /**
* Wakes up a single thread waiting on this object. * Wakes up a single thread waiting on this object.

Loading…
Cancel
Save