/proc/self/cwd/source/common/thread/terminate_thread.cc
Line | Count | Source (jump to first uncovered line) |
1 | | #include "source/common/thread/terminate_thread.h" |
2 | | |
3 | | #include <sys/types.h> |
4 | | |
5 | | #include <csignal> |
6 | | |
7 | | #include "source/common/common/logger.h" |
8 | | |
9 | | namespace Envoy { |
10 | | namespace Thread { |
11 | | namespace { |
12 | | #ifdef __linux__ |
13 | 0 | pid_t toPlatformTid(int64_t tid) { return static_cast<pid_t>(tid); } |
14 | | #elif defined(__APPLE__) |
15 | | uint64_t toPlatformTid(int64_t tid) { return static_cast<uint64_t>(tid); } |
16 | | #endif |
17 | | } // namespace |
18 | | |
19 | 0 | bool terminateThread(const ThreadId& tid) { |
20 | 0 | #ifndef WIN32 |
21 | | // Assume POSIX-compatible system and signal to the thread. |
22 | 0 | return kill(toPlatformTid(tid.getId()), SIGABRT) == 0; |
23 | | #else |
24 | | // Windows, currently unsupported termination of thread. |
25 | | ENVOY_LOG_MISC(error, "Windows is currently unsupported for terminateThread."); |
26 | | return false; |
27 | | #endif |
28 | 0 | } |
29 | | |
30 | | } // namespace Thread |
31 | | } // namespace Envoy |