diff options
Diffstat (limited to 'src/core/hle/service/nim')
| -rw-r--r-- | src/core/hle/service/nim/nim.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/core/hle/service/nim/nim.cpp b/src/core/hle/service/nim/nim.cpp index d181a781c..0dabcd23b 100644 --- a/src/core/hle/service/nim/nim.cpp +++ b/src/core/hle/service/nim/nim.cpp | |||
| @@ -140,19 +140,18 @@ public: | |||
| 140 | RegisterHandlers(functions); | 140 | RegisterHandlers(functions); |
| 141 | 141 | ||
| 142 | auto& kernel = Core::System::GetInstance().Kernel(); | 142 | auto& kernel = Core::System::GetInstance().Kernel(); |
| 143 | finished_event = Kernel::WritableEvent::CreateRegisteredEventPair( | 143 | finished_event = Kernel::WritableEvent::CreateEventPair( |
| 144 | kernel, Kernel::ResetType::OneShot, | 144 | kernel, Kernel::ResetType::OneShot, |
| 145 | "IEnsureNetworkClockAvailabilityService:FinishEvent"); | 145 | "IEnsureNetworkClockAvailabilityService:FinishEvent"); |
| 146 | } | 146 | } |
| 147 | 147 | ||
| 148 | private: | 148 | private: |
| 149 | Kernel::SharedPtr<Kernel::WritableEvent> finished_event; | 149 | Kernel::EventPair finished_event; |
| 150 | 150 | ||
| 151 | void StartTask(Kernel::HLERequestContext& ctx) { | 151 | void StartTask(Kernel::HLERequestContext& ctx) { |
| 152 | // No need to connect to the internet, just finish the task straight away. | 152 | // No need to connect to the internet, just finish the task straight away. |
| 153 | LOG_DEBUG(Service_NIM, "called"); | 153 | LOG_DEBUG(Service_NIM, "called"); |
| 154 | 154 | finished_event.writable->Signal(); | |
| 155 | finished_event->Signal(); | ||
| 156 | IPC::ResponseBuilder rb{ctx, 2}; | 155 | IPC::ResponseBuilder rb{ctx, 2}; |
| 157 | rb.Push(RESULT_SUCCESS); | 156 | rb.Push(RESULT_SUCCESS); |
| 158 | } | 157 | } |
| @@ -162,9 +161,7 @@ private: | |||
| 162 | 161 | ||
| 163 | IPC::ResponseBuilder rb{ctx, 2, 1}; | 162 | IPC::ResponseBuilder rb{ctx, 2, 1}; |
| 164 | rb.Push(RESULT_SUCCESS); | 163 | rb.Push(RESULT_SUCCESS); |
| 165 | const auto& event{Core::System::GetInstance().Kernel().FindNamedEvent( | 164 | rb.PushCopyObjects(finished_event.readable); |
| 166 | "IEnsureNetworkClockAvailabilityService:FinishEvent")}; | ||
| 167 | rb.PushCopyObjects(event->second); | ||
| 168 | } | 165 | } |
| 169 | 166 | ||
| 170 | void GetResult(Kernel::HLERequestContext& ctx) { | 167 | void GetResult(Kernel::HLERequestContext& ctx) { |
| @@ -176,8 +173,7 @@ private: | |||
| 176 | 173 | ||
| 177 | void Cancel(Kernel::HLERequestContext& ctx) { | 174 | void Cancel(Kernel::HLERequestContext& ctx) { |
| 178 | LOG_DEBUG(Service_NIM, "called"); | 175 | LOG_DEBUG(Service_NIM, "called"); |
| 179 | 176 | finished_event.writable->Clear(); | |
| 180 | finished_event->Clear(); | ||
| 181 | IPC::ResponseBuilder rb{ctx, 2}; | 177 | IPC::ResponseBuilder rb{ctx, 2}; |
| 182 | rb.Push(RESULT_SUCCESS); | 178 | rb.Push(RESULT_SUCCESS); |
| 183 | } | 179 | } |