mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Revert "thread_pthread.c: fix memory leak from fork loop leapfrog (v2)"
This reverts r66290 / commit 043047a8fd
.
Still fails on CI, and I'm not able to reproduce the failure, either :<
http://ci.rvm.jp/results/trunk-test@ruby-sky1/1508228
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
043047a8fd
commit
ab73ef6b70
1 changed files with 7 additions and 9 deletions
|
@ -1726,12 +1726,16 @@ rb_thread_create_timer_thread(void)
|
|||
if (setup_communication_pipe_internal(signal_self_pipe.normal) < 0) return;
|
||||
if (setup_communication_pipe_internal(signal_self_pipe.ub_main) < 0) return;
|
||||
|
||||
ubf_timer_create(current);
|
||||
if (owner != current) {
|
||||
/* validate pipe on this process */
|
||||
ubf_timer_create(current);
|
||||
sigwait_th = THREAD_INVALID;
|
||||
signal_self_pipe.owner_process = current;
|
||||
}
|
||||
else if (UBF_TIMER == UBF_TIMER_PTHREAD) {
|
||||
/* UBF_TIMER_PTHREAD needs to recreate after fork */
|
||||
ubf_timer_pthread_create(current);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1759,14 +1763,7 @@ ubf_timer_disarm(void)
|
|||
static void
|
||||
ubf_timer_destroy(void)
|
||||
{
|
||||
#if UBF_TIMER == UBF_TIMER_POSIX
|
||||
if (timer_posix.owner == getpid()) {
|
||||
ubf_timer_disarm();
|
||||
if (timer_delete(timer_posix.timerid) < 0)
|
||||
rb_sys_fail("timer_delete");
|
||||
memset(&timer_posix, 0, sizeof(timer_posix));
|
||||
}
|
||||
#elif UBF_TIMER == UBF_TIMER_PTHREAD
|
||||
#if UBF_TIMER == UBF_TIMER_PTHREAD
|
||||
int err;
|
||||
|
||||
timer_pthread.owner = 0;
|
||||
|
@ -1777,6 +1774,7 @@ ubf_timer_destroy(void)
|
|||
rb_raise(rb_eThreadError, "native_thread_join() failed (%d)", err);
|
||||
}
|
||||
#endif
|
||||
/* no need to destroy real POSIX timers */
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
Loading…
Add table
Reference in a new issue