summaryrefslogtreecommitdiff
path: root/process.c
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-05 20:06:49 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-05 20:06:49 +0000
commit2ba640f35961a6e3bf35a7aa9618c7d6fb0e2fba (patch)
treea7b0fcff2b0b881e65eb62d3b3b6976715bdb6c5 /process.c
parente09c14a05f7872178d725179331c4dc7a109aa87 (diff)
thread_pthread: stop trying to deal with cancellation
We don't use pthreads cancellation ourselves and it's painful to use correctly. Any cancelled threads would break vm->living_threads, GVL, thread_sync.c, autoload, etc... So don't bother caring; because we can't stop rogue extensions from completely breaking the VM in other ways, either. [ruby-core:88282] [Misc #14962] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'process.c')
-rw-r--r--process.c15
1 files changed, 0 insertions, 15 deletions
diff --git a/process.c b/process.c
index 32053a8d3d..177fac62d5 100644
--- a/process.c
+++ b/process.c
@@ -3869,7 +3869,6 @@ has_privilege(void)
struct child_handler_disabler_state
{
sigset_t sigmask;
- int cancelstate;
};
static void
@@ -3890,13 +3889,6 @@ disable_child_handler_before_fork(struct child_handler_disabler_state *old)
#else
# pragma GCC warning "pthread_sigmask on fork is not available. potentially dangerous"
#endif
-
-#ifdef PTHREAD_CANCEL_DISABLE
- ret = pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &old->cancelstate);
- if (ret != 0) {
- rb_syserr_fail(ret, "pthread_setcancelstate");
- }
-#endif
}
static void
@@ -3904,13 +3896,6 @@ 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) {
- rb_syserr_fail(ret, "pthread_setcancelstate");
- }
-#endif
-
#ifdef HAVE_PTHREAD_SIGMASK
ret = pthread_sigmask(SIG_SETMASK, &old->sigmask, NULL); /* not async-signal-safe */
if (ret != 0) {