Fix raise(3) so it works in signal handlers.

We could special-case raise(3) in non-threaded programs, but the more
conservative course is to make pthread_kill(3) work in signal handlers
at the cost of a race shared by other C libraries.

Change-Id: I59fb23d03bdabf403435e731704b33acdf3e0234
diff --git a/libc/bionic/pthread_kill.cpp b/libc/bionic/pthread_kill.cpp
index 2d37ae9..54f71ee 100644
--- a/libc/bionic/pthread_kill.cpp
+++ b/libc/bionic/pthread_kill.cpp
@@ -42,7 +42,11 @@
     return ESRCH;
   }
 
-  int rc = tgkill(getpid(), thread->tid, sig);
+  // There's a race here, but it's one we share with all other C libraries.
+  pid_t tid = thread->tid;
+  thread.Unlock();
+
+  int rc = tgkill(getpid(), tid, sig);
   if (rc == -1) {
     return errno;
   }