diff options
author | Daniel Xie <dxie@google.com> | 2015-11-11 19:00:17 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2015-11-11 19:00:17 +0000 |
commit | 1a5bfd9eaf22eaf9fcc54d3065d0e88bff4f3e42 (patch) | |
tree | 12b8362dac8a24ae7c3baaa94440b55f8892c2a5 | |
parent | 807032d0e12877a4c92ac7f6072d5dd9e1f76f3c (diff) | |
parent | eebe01b523075c0634b04463c210510f192f154d (diff) | |
download | bionic-1a5bfd9eaf22eaf9fcc54d3065d0e88bff4f3e42.zip bionic-1a5bfd9eaf22eaf9fcc54d3065d0e88bff4f3e42.tar.gz bionic-1a5bfd9eaf22eaf9fcc54d3065d0e88bff4f3e42.tar.bz2 |
Merge "Fix potential race condition on CTS TC pthread_gettid_np" into marshmallow-cts-dev am: 2010fb6722
am: eebe01b523
* commit 'eebe01b523075c0634b04463c210510f192f154d':
Fix potential race condition on CTS TC pthread_gettid_np
-rwxr-xr-x[-rw-r--r--] | tests/pthread_test.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/tests/pthread_test.cpp b/tests/pthread_test.cpp index ad8fac6..e210255 100644..100755 --- a/tests/pthread_test.cpp +++ b/tests/pthread_test.cpp @@ -1245,8 +1245,11 @@ TEST(pthread, pthread_attr_getstack_18908062) { } #if defined(__BIONIC__) +static pthread_mutex_t gettid_mutex; static void* pthread_gettid_np_helper(void* arg) { + pthread_mutex_lock(&gettid_mutex); *reinterpret_cast<pid_t*>(arg) = gettid(); + pthread_mutex_unlock(&gettid_mutex); return NULL; } #endif @@ -1257,11 +1260,15 @@ TEST(pthread, pthread_gettid_np) { pid_t t_gettid_result; pthread_t t; + pthread_mutex_init(&gettid_mutex, NULL); + pthread_mutex_lock(&gettid_mutex); pthread_create(&t, NULL, pthread_gettid_np_helper, &t_gettid_result); pid_t t_pthread_gettid_np_result = pthread_gettid_np(t); + pthread_mutex_unlock(&gettid_mutex); pthread_join(t, NULL); + pthread_mutex_destroy(&gettid_mutex); ASSERT_EQ(t_gettid_result, t_pthread_gettid_np_result); #else |