From e6368921eabf3874e8d6caab3d9af423768937d6 Mon Sep 17 00:00:00 2001 From: akr Date: Sun, 7 Sep 2014 03:47:47 +0000 Subject: * process.c: PTHREAD_CANCEL_DISABLE is not defined on Android. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ process.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/ChangeLog b/ChangeLog index 3c7270a887..7f74034ecd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sun Sep 7 12:47:06 2014 Tanaka Akira + + * process.c: PTHREAD_CANCEL_DISABLE is not defined on Android. + Sat Sep 6 20:59:06 2014 Tanaka Akira * process.c (has_privilege): The gid zero is not a privilege. diff --git a/process.c b/process.c index 62566ddea3..8bb52f7b77 100644 --- a/process.c +++ b/process.c @@ -3403,11 +3403,13 @@ disable_child_handler_before_fork(struct child_handler_disabler_state *old) rb_sys_fail("pthread_sigmask"); } +#ifdef PTHREAD_CANCEL_DISABLE ret = pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &old->cancelstate); if (ret != 0) { errno = ret; rb_sys_fail("pthread_setcancelstate"); } +#endif } static void @@ -3415,11 +3417,13 @@ disable_child_handler_fork_parent(struct child_handler_disabler_state *old) { int ret; +#ifdef PTHREAD_CANCEL_DISABLE ret = pthread_setcancelstate(old->cancelstate, NULL); if (ret != 0) { errno = ret; rb_sys_fail("pthread_setcancelstate"); } +#endif ret = pthread_sigmask(SIG_SETMASK, &old->sigmask, NULL); /* not async-signal-safe */ if (ret != 0) { -- cgit v1.2.3