Fix pthread test race conditions.

Guarantee that threads live long enough for us to fiddle with them.

Bug: http://b/68768209
Test: ran tests
Change-Id: I06b1bb64fec9f8181b5f5b43ca1030e255fdccc1
diff --git a/tests/pthread_test.cpp b/tests/pthread_test.cpp
index 5eef35a..183312d 100755
--- a/tests/pthread_test.cpp
+++ b/tests/pthread_test.cpp
@@ -199,9 +199,11 @@
   SpinFunctionHelper() {
     SpinFunctionHelper::spin_flag_ = true;
   }
+
   ~SpinFunctionHelper() {
     UnSpin();
   }
+
   auto GetFunction() -> void* (*)(void*) {
     return SpinFunctionHelper::SpinFn;
   }
@@ -2233,12 +2235,14 @@
   ASSERT_EQ(0, pthread_attr_init(&attr));
   ASSERT_EQ(0, pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED));
 
+  SpinFunctionHelper spin_helper;
   pthread_t t;
-  ASSERT_EQ(0, pthread_create(&t, &attr, IdFn, nullptr));
+  ASSERT_EQ(0, pthread_create(&t, &attr, spin_helper.GetFunction(), nullptr));
   int actual_policy;
   sched_param actual_param;
   ASSERT_EQ(0, pthread_getschedparam(t, &actual_policy, &actual_param));
   ASSERT_EQ(SCHED_FIFO, actual_policy);
+  spin_helper.UnSpin();
   ASSERT_EQ(0, pthread_join(t, nullptr));
 }
 
@@ -2256,12 +2260,14 @@
   ASSERT_EQ(0, pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED));
   ASSERT_EQ(0, pthread_attr_setschedpolicy(&attr, SCHED_OTHER));
 
+  SpinFunctionHelper spin_helper;
   pthread_t t;
-  ASSERT_EQ(0, pthread_create(&t, &attr, IdFn, nullptr));
+  ASSERT_EQ(0, pthread_create(&t, &attr, spin_helper.GetFunction(), nullptr));
   int actual_policy;
   sched_param actual_param;
   ASSERT_EQ(0, pthread_getschedparam(t, &actual_policy, &actual_param));
   ASSERT_EQ(SCHED_OTHER, actual_policy);
+  spin_helper.UnSpin();
   ASSERT_EQ(0, pthread_join(t, nullptr));
 }
 
@@ -2278,11 +2284,13 @@
   ASSERT_EQ(0, pthread_attr_init(&attr));
   ASSERT_EQ(0, pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED));
 
+  SpinFunctionHelper spin_helper;
   pthread_t t;
-  ASSERT_EQ(0, pthread_create(&t, &attr, IdFn, nullptr));
+  ASSERT_EQ(0, pthread_create(&t, &attr, spin_helper.GetFunction(), nullptr));
   int actual_policy;
   sched_param actual_param;
   ASSERT_EQ(0, pthread_getschedparam(t, &actual_policy, &actual_param));
   ASSERT_EQ(SCHED_FIFO  | SCHED_RESET_ON_FORK, actual_policy);
+  spin_helper.UnSpin();
   ASSERT_EQ(0, pthread_join(t, nullptr));
 }