summaryrefslogtreecommitdiff
path: root/src/managers/ANRManager.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2025-04-27 00:03:32 +0100
committerVaxry <vaxry@vaxry.net>2025-04-27 13:28:06 +0100
commit0302bfdc2207f9b5482fb07aa6052e7f6cb237ca (patch)
treec2039f2d4f01327b23b39493bc03b90d195fa6d3 /src/managers/ANRManager.cpp
parent4f868a1f3c1edfc1f5998f7d21e46e7c23aeb02f (diff)
async: add Promise and use it for AsyncDialogBox
Diffstat (limited to 'src/managers/ANRManager.cpp')
-rw-r--r--src/managers/ANRManager.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/managers/ANRManager.cpp b/src/managers/ANRManager.cpp
index 69d127a7..48b9a6db 100644
--- a/src/managers/ANRManager.cpp
+++ b/src/managers/ANRManager.cpp
@@ -169,7 +169,14 @@ void CANRManager::SANRData::runDialog(const std::string& title, const std::strin
appClass.empty() ? "unknown" : appClass),
std::vector<std::string>{"Terminate", "Wait"});
- dialogBox->open([dialogWmPID, this](std::string result) {
+ dialogBox->open()->then([dialogWmPID, this](SP<CPromiseResult<std::string>> r) {
+ if (r->hasError()) {
+ Debug::log(ERR, "CANRManager::SANRData::runDialog: error spawning dialog");
+ return;
+ }
+
+ const auto& result = r->result();
+
if (result.starts_with("Terminate"))
::kill(dialogWmPID, SIGKILL);
else if (result.starts_with("Wait"))