diff --git a/tests/setjmp_test.cpp b/tests/setjmp_test.cpp
index 065c783..2df0135 100644
--- a/tests/setjmp_test.cpp
+++ b/tests/setjmp_test.cpp
@@ -74,7 +74,8 @@
   // _setjmp/_longjmp do not save/restore the signal mask.
   sigset_t ss1(SigSetOf(SIGUSR1));
   sigset_t ss2(SigSetOf(SIGUSR2));
-  sigprocmask(SIG_SETMASK, &ss1, NULL);
+  sigset_t original_set;
+  sigprocmask(SIG_SETMASK, &ss1, &original_set);
   jmp_buf jb;
   if (_setjmp(jb) == 0) {
     sigprocmask(SIG_SETMASK, &ss2, NULL);
@@ -85,6 +86,7 @@
     sigprocmask(SIG_SETMASK, NULL, &ss);
     EXPECT_TRUE(sigismember(&ss, SIGUSR2));
   }
+  sigprocmask(SIG_SETMASK, &original_set, NULL);
 }
 
 TEST(setjmp, setjmp_signal_mask) {
@@ -93,7 +95,8 @@
   // behavior unspecified, so any code that cares needs to use sigsetjmp.
   sigset_t ss1(SigSetOf(SIGUSR1));
   sigset_t ss2(SigSetOf(SIGUSR2));
-  sigprocmask(SIG_SETMASK, &ss1, NULL);
+  sigset_t original_set;
+  sigprocmask(SIG_SETMASK, &ss1, &original_set);
   jmp_buf jb;
   if (setjmp(jb) == 0) {
     sigprocmask(SIG_SETMASK, &ss2, NULL);
@@ -110,13 +113,15 @@
     EXPECT_TRUE(sigismember(&ss, SIGUSR2));
 #endif
   }
+  sigprocmask(SIG_SETMASK, &original_set, NULL);
 }
 
 TEST(setjmp, sigsetjmp_0_signal_mask) {
   // sigsetjmp(0)/siglongjmp do not save/restore the signal mask.
   sigset_t ss1(SigSetOf(SIGUSR1));
   sigset_t ss2(SigSetOf(SIGUSR2));
-  sigprocmask(SIG_SETMASK, &ss1, NULL);
+  sigset_t original_set;
+  sigprocmask(SIG_SETMASK, &ss1, &original_set);
   sigjmp_buf sjb;
   if (sigsetjmp(sjb, 0) == 0) {
     sigprocmask(SIG_SETMASK, &ss2, NULL);
@@ -127,13 +132,15 @@
     sigprocmask(SIG_SETMASK, NULL, &ss);
     EXPECT_TRUE(sigismember(&ss, SIGUSR2));
   }
+  sigprocmask(SIG_SETMASK, &original_set, NULL);
 }
 
 TEST(setjmp, sigsetjmp_1_signal_mask) {
   // sigsetjmp(1)/siglongjmp does save/restore the signal mask.
   sigset_t ss1(SigSetOf(SIGUSR1));
   sigset_t ss2(SigSetOf(SIGUSR2));
-  sigprocmask(SIG_SETMASK, &ss1, NULL);
+  sigset_t original_set;
+  sigprocmask(SIG_SETMASK, &ss1, &original_set);
   sigjmp_buf sjb;
   if (sigsetjmp(sjb, 1) == 0) {
     sigprocmask(SIG_SETMASK, &ss2, NULL);
@@ -144,4 +151,5 @@
     sigprocmask(SIG_SETMASK, NULL, &ss);
     EXPECT_TRUE(sigismember(&ss, SIGUSR1));
   }
+  sigprocmask(SIG_SETMASK, &original_set, NULL);
 }
diff --git a/tests/stack_unwinding_test.cpp b/tests/stack_unwinding_test.cpp
index 3fc45c5..3d3f22d 100644
--- a/tests/stack_unwinding_test.cpp
+++ b/tests/stack_unwinding_test.cpp
@@ -73,6 +73,7 @@
   ASSERT_EQ(count + 1, deeper_count);
 }
 
+static volatile bool signal_handler_run = false;
 static int killer_count = 0;
 static int handler_count = 0;
 static int handler_one_deeper_count = 0;
@@ -83,6 +84,7 @@
 
   handler_one_deeper_count = unwind_one_frame_deeper();
   ASSERT_EQ(handler_count + 1, handler_one_deeper_count);
+  signal_handler_run = true;
 }
 
 TEST(stack_unwinding, unwind_through_signal_frame) {
@@ -90,8 +92,9 @@
   ScopedSignalHandler ssh(SIGUSR1, UnwindSignalHandler);
 
   _Unwind_Backtrace(FrameCounter, &killer_count);
-
+  signal_handler_run = false;
   ASSERT_EQ(0, kill(getpid(), SIGUSR1));
+  while (!signal_handler_run) {}
 }
 
 // On LP32, the SA_SIGINFO flag gets you __restore_rt instead of __restore.
@@ -100,6 +103,7 @@
   ScopedSignalHandler ssh(SIGUSR1, UnwindSignalHandler, SA_SIGINFO);
 
   _Unwind_Backtrace(FrameCounter, &killer_count);
-
+  signal_handler_run = false;
   ASSERT_EQ(0, kill(getpid(), SIGUSR1));
+  while (!signal_handler_run) {}
 }
