summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYifan Hong <elsk@google.com>2023-12-06 23:00:23 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2023-12-06 23:00:23 +0000
commit4a9ad85bce956565939b16d2ad3c1d244fd8ec2f (patch)
treeb3ad63d33c5c10496a7ddc415f1f8e211c41987e
parentf2daedf53d98c013d80776e05694f13a4127984f (diff)
downloadnative-4a9ad85bce956565939b16d2ad3c1d244fd8ec2f.tar.gz
Revert "lshal: do not pthread_kill"
This reverts commit f2daedf53d98c013d80776e05694f13a4127984f. Reason for revert: breaks wear devices Bug: 315194872 Change-Id: I879da9c77a9bd1275e45b316fe88ec91d498ec0b
-rw-r--r--cmds/lshal/Timeout.h10
-rw-r--r--cmds/lshal/main.cpp1
2 files changed, 3 insertions, 8 deletions
diff --git a/cmds/lshal/Timeout.h b/cmds/lshal/Timeout.h
index 012a5d54aa..e8d22d9b58 100644
--- a/cmds/lshal/Timeout.h
+++ b/cmds/lshal/Timeout.h
@@ -72,14 +72,10 @@ bool timeout(std::chrono::duration<R, P> delay, std::function<void(void)> &&func
return false;
}
bool success = state.wait(now + delay);
- if (success) {
- pthread_join(thread, nullptr);
- } else {
- // b/311143089: Abandon this background thread. Resources for a detached
- // thread are cleaned up when it is terminated. If the background thread
- // is stalled, it will be terminated when returning from main().
- pthread_detach(thread);
+ if (!success) {
+ pthread_kill(thread, SIGINT);
}
+ pthread_join(thread, nullptr);
return success;
}
diff --git a/cmds/lshal/main.cpp b/cmds/lshal/main.cpp
index a44f467bb1..366c9383a2 100644
--- a/cmds/lshal/main.cpp
+++ b/cmds/lshal/main.cpp
@@ -18,6 +18,5 @@
int main(int argc, char **argv) {
using namespace ::android::lshal;
- // Background pthreads from timeout() are destroyed upon returning from main().
return Lshal{}.main(Arg{argc, argv});
}