Commit 44e23c39 authored by Victor Zverovich's avatar Victor Zverovich

Implement GetThreadCount on Linux.

parent 431b5569
...@@ -8258,6 +8258,7 @@ void FilePath::Normalize() { ...@@ -8258,6 +8258,7 @@ void FilePath::Normalize() {
# include <sys/stat.h> # include <sys/stat.h>
#else #else
# include <unistd.h> # include <unistd.h>
# include <dirent.h>
#endif // GTEST_OS_WINDOWS_MOBILE #endif // GTEST_OS_WINDOWS_MOBILE
#if GTEST_OS_MAC #if GTEST_OS_MAC
...@@ -8333,6 +8334,22 @@ size_t GetThreadCount() { ...@@ -8333,6 +8334,22 @@ size_t GetThreadCount() {
} }
} }
#elif GTEST_OS_LINUX
// Returns the number of threads running in the process, or 0 to indicate that
// we cannot detect it.
size_t GetThreadCount() {
size_t thread_count = 0;
if (DIR *dir = opendir("/proc/self/task")) {
while (dirent *entry = readdir(dir)) {
if (entry->d_name[0] != '.')
++thread_count;
}
closedir(dir);
}
return thread_count;
}
#else #else
size_t GetThreadCount() { size_t GetThreadCount() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment