diff --git a/adb/Android.mk b/adb/Android.mk index 112bc80cb..819bad10b 100644 --- a/adb/Android.mk +++ b/adb/Android.mk @@ -17,11 +17,15 @@ ADB_COMMON_CFLAGS := \ -Wvla \ -DADB_REVISION='"$(adb_version)"' \ -ADB_COMMON_linux_CFLAGS := \ +ADB_COMMON_posix_CFLAGS := \ -Wexit-time-destructors \ + -Wthread-safety + +ADB_COMMON_linux_CFLAGS := \ + $(ADB_COMMON_posix_CFLAGS) \ ADB_COMMON_darwin_CFLAGS := \ - -Wexit-time-destructors \ + $(ADB_COMMON_posix_CFLAGS) \ # Define windows.h and tchar.h Unicode preprocessor symbols so that # CreateFile(), _tfopen(), etc. map to versions that take wchar_t*, breaking the diff --git a/adb/sysdeps_test.cpp b/adb/sysdeps_test.cpp index edb0fb3d1..fd1988252 100644 --- a/adb/sysdeps_test.cpp +++ b/adb/sysdeps_test.cpp @@ -201,55 +201,6 @@ TEST_F(sysdeps_poll, fd_count) { } } -TEST(sysdeps_mutex, mutex_smoke) { - static std::atomic finished(false); - static std::mutex &m = *new std::mutex(); - m.lock(); - ASSERT_FALSE(m.try_lock()); - std::thread thread([]() { - ASSERT_FALSE(m.try_lock()); - m.lock(); - finished.store(true); - std::this_thread::sleep_for(200ms); - m.unlock(); - }); - - ASSERT_FALSE(finished.load()); - std::this_thread::sleep_for(100ms); - ASSERT_FALSE(finished.load()); - m.unlock(); - std::this_thread::sleep_for(100ms); - m.lock(); - ASSERT_TRUE(finished.load()); - m.unlock(); - - thread.join(); -} - -TEST(sysdeps_mutex, recursive_mutex_smoke) { - static std::recursive_mutex &m = *new std::recursive_mutex(); - - m.lock(); - ASSERT_TRUE(m.try_lock()); - m.unlock(); - - std::thread thread([]() { - ASSERT_FALSE(m.try_lock()); - m.lock(); - std::this_thread::sleep_for(500ms); - m.unlock(); - }); - - std::this_thread::sleep_for(100ms); - m.unlock(); - std::this_thread::sleep_for(100ms); - ASSERT_FALSE(m.try_lock()); - m.lock(); - m.unlock(); - - thread.join(); -} - TEST(sysdeps_condition_variable, smoke) { static std::mutex &m = *new std::mutex; static std::condition_variable &cond = *new std::condition_variable;