diff options
author | Andy Lutomirski <luto@kernel.org> | 2016-06-16 11:03:50 -0700 |
---|---|---|
committer | Andy Lutomirski <luto@kernel.org> | 2016-06-16 11:03:50 -0700 |
commit | d8164c2831be9bbcfcb2d6d4d89c8ab373ca530e (patch) | |
tree | 164357177b558cf49096b46eddb352e2215262dc | |
parent | 52df20873dd8d380977b9ae1b0645deb0750bf49 (diff) | |
download | misc-tests-d8164c2831be9bbcfcb2d6d4d89c8ab373ca530e.tar.gz |
timing_test: Add pthread_create
-rw-r--r-- | timing_test.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/timing_test.cc b/timing_test.cc index 2f35f26..0468dac 100644 --- a/timing_test.cc +++ b/timing_test.cc @@ -11,6 +11,7 @@ #include <inttypes.h> #include <atomic> #include <signal.h> +#include <pthread.h> #include <err.h> typedef int (*vgettime_t)(clockid_t, timespec *); @@ -46,6 +47,11 @@ static void sigusr1(int sig, siginfo_t *info, void *ctx_void) { } +static void *empty_thread_proc(void *) +{ + return NULL; +} + int main(int argc, char **argv) { if (argc < 3) { @@ -277,6 +283,14 @@ int main(int argc, char **argv) for (size_t i = 0; i < loops; ++i) syscall(SYS_arch_prctl, 42, 0); #endif + } else if (!strcmp(mode, "pthread_create")) { + pthread_t thread; + for (size_t i = 0; i < loops; ++i) { + if (pthread_create(&thread, NULL, + empty_thread_proc, NULL)) + err(1, "pthread_create"); + pthread_join(thread, NULL); + } } else { printf("Unknown mode %s\n", mode); return 1; |