summaryrefslogtreecommitdiff
path: root/src/core/hle/service/nim
diff options
context:
space:
mode:
authorGravatar Zach Hilman2018-11-27 09:18:29 -0500
committerGravatar Zach Hilman2018-11-29 08:48:40 -0500
commita342bcc9b130e9bd78720e09e04c92dcac8840d0 (patch)
treedf1d16c2a71b121fc449b53fc931c6fac8ccf82a /src/core/hle/service/nim
parentcore: Port all current usages of Event to Readable/WritableEvent (diff)
downloadyuzu-a342bcc9b130e9bd78720e09e04c92dcac8840d0.tar.gz
yuzu-a342bcc9b130e9bd78720e09e04c92dcac8840d0.tar.xz
yuzu-a342bcc9b130e9bd78720e09e04c92dcac8840d0.zip
kernel/event: Reference ReadableEvent from WritableEvent
Diffstat (limited to 'src/core/hle/service/nim')
-rw-r--r--src/core/hle/service/nim/nim.cpp14
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
148private: 148private:
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 }