Use pthread_kill() in raise()
raise() should use pthread_kill() in a pthreads environment.
For bionic this means it should always be used.
Change-Id: Ic679272b664d2b8a7068b628fb83a9f7395c441f
diff --git a/libc/bionic/raise.c b/libc/bionic/raise.cpp
similarity index 89%
rename from libc/bionic/raise.c
rename to libc/bionic/raise.cpp
index 7b03a7a..f69d90b 100644
--- a/libc/bionic/raise.c
+++ b/libc/bionic/raise.cpp
@@ -25,10 +25,14 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-#include <unistd.h>
-#include <signal.h>
-int raise(int signum)
-{
- return kill(gettid(), signum);
+#include <pthread.h>
+
+int raise(int sig) {
+ int rc = pthread_kill(pthread_self(), sig);
+ if (rc != 0) {
+ errno = rc;
+ return -1;
+ }
+ return 0;
}