stop ticking during intermittent sleep
This commit is contained in:
1 parent
85bfed0604
commit
cbdd35b0be
3 files changed
+19
No files matched your search
@@ -15,6 +15,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <atomic>
|
||||
#include <cstring>
|
||||
#include <switch.h>
|
||||
|
||||
@@ -79,6 +80,8 @@ namespace bpmp {
|
||||
Thread s_pscThread;
|
||||
bool s_pscExit = false;
|
||||
|
||||
std::atomic_bool s_isAwake = true;
|
||||
|
||||
void PscThreadFunc(void *) {
|
||||
while (!s_pscExit) {
|
||||
Result rc = eventWait(&s_pscModule.event, 1'000'000'000ULL);
|
||||
@@ -95,6 +98,10 @@ namespace bpmp {
|
||||
if (R_FAILED(wrc)) {
|
||||
fileUtils::LogLine("[bpmp] restart after wake failed: 0x%x", wrc);
|
||||
}
|
||||
|
||||
s_isAwake = true;
|
||||
} else if (state == PscPmState_ReadySleep) {
|
||||
s_isAwake = false;
|
||||
}
|
||||
|
||||
pscPmModuleAcknowledge(&s_pscModule, state);
|
||||
@@ -221,4 +228,8 @@ namespace bpmp {
|
||||
return &s_sharedInfo;
|
||||
}
|
||||
|
||||
bool IsAwake() {
|
||||
return s_isAwake;
|
||||
}
|
||||
|
||||
} // namespace bpmp
|
||||
Reference in new issue
Block a user