3
0
Fork 0
forked from suyu/suyu

Merge pull request #2314 from lioncash/const

kernel/thread: Minor interface cleanup
This commit is contained in:
bunnei 2019-04-03 11:46:17 -04:00 committed by GitHub
commit 74a4a50470
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 18 additions and 18 deletions

View file

@ -257,7 +257,7 @@ void Process::Acquire(Thread* thread) {
ASSERT_MSG(!ShouldWait(thread), "Object unavailable!"); ASSERT_MSG(!ShouldWait(thread), "Object unavailable!");
} }
bool Process::ShouldWait(Thread* thread) const { bool Process::ShouldWait(const Thread* thread) const {
return !is_signaled; return !is_signaled;
} }

View file

@ -251,7 +251,7 @@ private:
~Process() override; ~Process() override;
/// Checks if the specified thread should wait until this process is available. /// Checks if the specified thread should wait until this process is available.
bool ShouldWait(Thread* thread) const override; bool ShouldWait(const Thread* thread) const override;
/// Acquires/locks this process for the specified thread if it's available. /// Acquires/locks this process for the specified thread if it's available.
void Acquire(Thread* thread) override; void Acquire(Thread* thread) override;

View file

@ -14,7 +14,7 @@ namespace Kernel {
ReadableEvent::ReadableEvent(KernelCore& kernel) : WaitObject{kernel} {} ReadableEvent::ReadableEvent(KernelCore& kernel) : WaitObject{kernel} {}
ReadableEvent::~ReadableEvent() = default; ReadableEvent::~ReadableEvent() = default;
bool ReadableEvent::ShouldWait(Thread* thread) const { bool ReadableEvent::ShouldWait(const Thread* thread) const {
return !signaled; return !signaled;
} }

View file

@ -36,7 +36,7 @@ public:
return HANDLE_TYPE; return HANDLE_TYPE;
} }
bool ShouldWait(Thread* thread) const override; bool ShouldWait(const Thread* thread) const override;
void Acquire(Thread* thread) override; void Acquire(Thread* thread) override;
/// Unconditionally clears the readable event's state. /// Unconditionally clears the readable event's state.

View file

@ -30,7 +30,7 @@ void ServerPort::AppendPendingSession(SharedPtr<ServerSession> pending_session)
pending_sessions.push_back(std::move(pending_session)); pending_sessions.push_back(std::move(pending_session));
} }
bool ServerPort::ShouldWait(Thread* thread) const { bool ServerPort::ShouldWait(const Thread* thread) const {
// If there are no pending sessions, we wait until a new one is added. // If there are no pending sessions, we wait until a new one is added.
return pending_sessions.empty(); return pending_sessions.empty();
} }

View file

@ -75,7 +75,7 @@ public:
/// waiting to be accepted by this port. /// waiting to be accepted by this port.
void AppendPendingSession(SharedPtr<ServerSession> pending_session); void AppendPendingSession(SharedPtr<ServerSession> pending_session);
bool ShouldWait(Thread* thread) const override; bool ShouldWait(const Thread* thread) const override;
void Acquire(Thread* thread) override; void Acquire(Thread* thread) override;
private: private:

View file

@ -46,7 +46,7 @@ ResultVal<SharedPtr<ServerSession>> ServerSession::Create(KernelCore& kernel, st
return MakeResult(std::move(server_session)); return MakeResult(std::move(server_session));
} }
bool ServerSession::ShouldWait(Thread* thread) const { bool ServerSession::ShouldWait(const Thread* thread) const {
// Closed sessions should never wait, an error will be returned from svcReplyAndReceive. // Closed sessions should never wait, an error will be returned from svcReplyAndReceive.
if (parent->client == nullptr) if (parent->client == nullptr)
return false; return false;

View file

@ -82,7 +82,7 @@ public:
*/ */
ResultCode HandleSyncRequest(SharedPtr<Thread> thread); ResultCode HandleSyncRequest(SharedPtr<Thread> thread);
bool ShouldWait(Thread* thread) const override; bool ShouldWait(const Thread* thread) const override;
void Acquire(Thread* thread) override; void Acquire(Thread* thread) override;

View file

@ -28,7 +28,7 @@
namespace Kernel { namespace Kernel {
bool Thread::ShouldWait(Thread* thread) const { bool Thread::ShouldWait(const Thread* thread) const {
return status != ThreadStatus::Dead; return status != ThreadStatus::Dead;
} }
@ -233,16 +233,16 @@ void Thread::SetWaitSynchronizationOutput(s32 output) {
context.cpu_registers[1] = output; context.cpu_registers[1] = output;
} }
s32 Thread::GetWaitObjectIndex(WaitObject* object) const { s32 Thread::GetWaitObjectIndex(const WaitObject* object) const {
ASSERT_MSG(!wait_objects.empty(), "Thread is not waiting for anything"); ASSERT_MSG(!wait_objects.empty(), "Thread is not waiting for anything");
auto match = std::find(wait_objects.rbegin(), wait_objects.rend(), object); const auto match = std::find(wait_objects.rbegin(), wait_objects.rend(), object);
return static_cast<s32>(std::distance(match, wait_objects.rend()) - 1); return static_cast<s32>(std::distance(match, wait_objects.rend()) - 1);
} }
VAddr Thread::GetCommandBufferAddress() const { VAddr Thread::GetCommandBufferAddress() const {
// Offset from the start of TLS at which the IPC command buffer begins. // Offset from the start of TLS at which the IPC command buffer begins.
static constexpr int CommandHeaderOffset = 0x80; constexpr u64 command_header_offset = 0x80;
return GetTLSAddress() + CommandHeaderOffset; return GetTLSAddress() + command_header_offset;
} }
void Thread::SetStatus(ThreadStatus new_status) { void Thread::SetStatus(ThreadStatus new_status) {
@ -371,7 +371,7 @@ void Thread::ChangeScheduler() {
system.CpuCore(processor_id).PrepareReschedule(); system.CpuCore(processor_id).PrepareReschedule();
} }
bool Thread::AllWaitObjectsReady() { bool Thread::AllWaitObjectsReady() const {
return std::none_of( return std::none_of(
wait_objects.begin(), wait_objects.end(), wait_objects.begin(), wait_objects.end(),
[this](const SharedPtr<WaitObject>& object) { return object->ShouldWait(this); }); [this](const SharedPtr<WaitObject>& object) { return object->ShouldWait(this); });

View file

@ -111,7 +111,7 @@ public:
return HANDLE_TYPE; return HANDLE_TYPE;
} }
bool ShouldWait(Thread* thread) const override; bool ShouldWait(const Thread* thread) const override;
void Acquire(Thread* thread) override; void Acquire(Thread* thread) override;
/** /**
@ -205,7 +205,7 @@ public:
* object in the list. * object in the list.
* @param object Object to query the index of. * @param object Object to query the index of.
*/ */
s32 GetWaitObjectIndex(WaitObject* object) const; s32 GetWaitObjectIndex(const WaitObject* object) const;
/** /**
* Stops a thread, invalidating it from further use * Stops a thread, invalidating it from further use
@ -299,7 +299,7 @@ public:
} }
/// Determines whether all the objects this thread is waiting on are ready. /// Determines whether all the objects this thread is waiting on are ready.
bool AllWaitObjectsReady(); bool AllWaitObjectsReady() const;
const MutexWaitingThreads& GetMutexWaitingThreads() const { const MutexWaitingThreads& GetMutexWaitingThreads() const {
return wait_mutex_threads; return wait_mutex_threads;

View file

@ -24,7 +24,7 @@ public:
* @param thread The thread about which we're deciding. * @param thread The thread about which we're deciding.
* @return True if the current thread should wait due to this object being unavailable * @return True if the current thread should wait due to this object being unavailable
*/ */
virtual bool ShouldWait(Thread* thread) const = 0; virtual bool ShouldWait(const Thread* thread) const = 0;
/// Acquire/lock the object for the specified thread if it is available /// Acquire/lock the object for the specified thread if it is available
virtual void Acquire(Thread* thread) = 0; virtual void Acquire(Thread* thread) = 0;