Merge pull request #2314 from lioncash/const
kernel/thread: Minor interface cleanup
This commit is contained in:
		@@ -257,7 +257,7 @@ void Process::Acquire(Thread* thread) {
 | 
			
		||||
    ASSERT_MSG(!ShouldWait(thread), "Object unavailable!");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Process::ShouldWait(Thread* thread) const {
 | 
			
		||||
bool Process::ShouldWait(const Thread* thread) const {
 | 
			
		||||
    return !is_signaled;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -251,7 +251,7 @@ private:
 | 
			
		||||
    ~Process() override;
 | 
			
		||||
 | 
			
		||||
    /// 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.
 | 
			
		||||
    void Acquire(Thread* thread) override;
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@ namespace Kernel {
 | 
			
		||||
ReadableEvent::ReadableEvent(KernelCore& kernel) : WaitObject{kernel} {}
 | 
			
		||||
ReadableEvent::~ReadableEvent() = default;
 | 
			
		||||
 | 
			
		||||
bool ReadableEvent::ShouldWait(Thread* thread) const {
 | 
			
		||||
bool ReadableEvent::ShouldWait(const Thread* thread) const {
 | 
			
		||||
    return !signaled;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,7 @@ public:
 | 
			
		||||
        return HANDLE_TYPE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    bool ShouldWait(Thread* thread) const override;
 | 
			
		||||
    bool ShouldWait(const Thread* thread) const override;
 | 
			
		||||
    void Acquire(Thread* thread) override;
 | 
			
		||||
 | 
			
		||||
    /// Unconditionally clears the readable event's state.
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,7 @@ void ServerPort::AppendPendingSession(SharedPtr<ServerSession> 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.
 | 
			
		||||
    return pending_sessions.empty();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -75,7 +75,7 @@ public:
 | 
			
		||||
    /// waiting to be accepted by this port.
 | 
			
		||||
    void AppendPendingSession(SharedPtr<ServerSession> pending_session);
 | 
			
		||||
 | 
			
		||||
    bool ShouldWait(Thread* thread) const override;
 | 
			
		||||
    bool ShouldWait(const Thread* thread) const override;
 | 
			
		||||
    void Acquire(Thread* thread) override;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,7 @@ ResultVal<SharedPtr<ServerSession>> ServerSession::Create(KernelCore& kernel, st
 | 
			
		||||
    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.
 | 
			
		||||
    if (parent->client == nullptr)
 | 
			
		||||
        return false;
 | 
			
		||||
 
 | 
			
		||||
@@ -82,7 +82,7 @@ public:
 | 
			
		||||
     */
 | 
			
		||||
    ResultCode HandleSyncRequest(SharedPtr<Thread> thread);
 | 
			
		||||
 | 
			
		||||
    bool ShouldWait(Thread* thread) const override;
 | 
			
		||||
    bool ShouldWait(const Thread* thread) const override;
 | 
			
		||||
 | 
			
		||||
    void Acquire(Thread* thread) override;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,7 @@
 | 
			
		||||
 | 
			
		||||
namespace Kernel {
 | 
			
		||||
 | 
			
		||||
bool Thread::ShouldWait(Thread* thread) const {
 | 
			
		||||
bool Thread::ShouldWait(const Thread* thread) const {
 | 
			
		||||
    return status != ThreadStatus::Dead;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -233,16 +233,16 @@ void Thread::SetWaitSynchronizationOutput(s32 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");
 | 
			
		||||
    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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
VAddr Thread::GetCommandBufferAddress() const {
 | 
			
		||||
    // Offset from the start of TLS at which the IPC command buffer begins.
 | 
			
		||||
    static constexpr int CommandHeaderOffset = 0x80;
 | 
			
		||||
    return GetTLSAddress() + CommandHeaderOffset;
 | 
			
		||||
    constexpr u64 command_header_offset = 0x80;
 | 
			
		||||
    return GetTLSAddress() + command_header_offset;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Thread::SetStatus(ThreadStatus new_status) {
 | 
			
		||||
@@ -371,7 +371,7 @@ void Thread::ChangeScheduler() {
 | 
			
		||||
    system.CpuCore(processor_id).PrepareReschedule();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Thread::AllWaitObjectsReady() {
 | 
			
		||||
bool Thread::AllWaitObjectsReady() const {
 | 
			
		||||
    return std::none_of(
 | 
			
		||||
        wait_objects.begin(), wait_objects.end(),
 | 
			
		||||
        [this](const SharedPtr<WaitObject>& object) { return object->ShouldWait(this); });
 | 
			
		||||
 
 | 
			
		||||
@@ -111,7 +111,7 @@ public:
 | 
			
		||||
        return HANDLE_TYPE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    bool ShouldWait(Thread* thread) const override;
 | 
			
		||||
    bool ShouldWait(const Thread* thread) const override;
 | 
			
		||||
    void Acquire(Thread* thread) override;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -205,7 +205,7 @@ public:
 | 
			
		||||
     * object in the list.
 | 
			
		||||
     * @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
 | 
			
		||||
@@ -299,7 +299,7 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Determines whether all the objects this thread is waiting on are ready.
 | 
			
		||||
    bool AllWaitObjectsReady();
 | 
			
		||||
    bool AllWaitObjectsReady() const;
 | 
			
		||||
 | 
			
		||||
    const MutexWaitingThreads& GetMutexWaitingThreads() const {
 | 
			
		||||
        return wait_mutex_threads;
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ public:
 | 
			
		||||
     * @param thread The thread about which we're deciding.
 | 
			
		||||
     * @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
 | 
			
		||||
    virtual void Acquire(Thread* thread) = 0;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user