mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 16:21:06 +00:00
* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset refcntr in
new thread, don't just decrement it. Patch by Suzuki K P <suzuki@in.ibm.com>.
This commit is contained in:
parent
621c133d40
commit
00a1430e3f
@ -1,3 +1,9 @@
|
|||||||
|
2007-02-25 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset refcntr in
|
||||||
|
new thread, don't just decrement it.
|
||||||
|
Patch by Suzuki K P <suzuki@in.ibm.com>.
|
||||||
|
|
||||||
2007-02-21 Ulrich Drepper <drepper@redhat.com>
|
2007-02-21 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* sysdeps/pthread/pthread-functions.h: Correct last patch, correct
|
* sysdeps/pthread/pthread-functions.h: Correct last patch, correct
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 2002, 2003, 2007 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
|
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
|
||||||
|
|
||||||
@ -167,8 +167,11 @@ __libc_fork (void)
|
|||||||
allp->handler->child_handler ();
|
allp->handler->child_handler ();
|
||||||
|
|
||||||
/* Note that we do not have to wake any possible waiter.
|
/* Note that we do not have to wake any possible waiter.
|
||||||
This is the only thread in the new process. */
|
This is the only thread in the new process. The count
|
||||||
--allp->handler->refcntr;
|
may have been bumped up by other threads doing a fork.
|
||||||
|
We reset it to 1, to avoid waiting for non-existing
|
||||||
|
thread(s) to release the count. */
|
||||||
|
allp->handler->refcntr = 1;
|
||||||
|
|
||||||
/* XXX We could at this point look through the object pool
|
/* XXX We could at this point look through the object pool
|
||||||
and mark all objects not on the __fork_handlers list as
|
and mark all objects not on the __fork_handlers list as
|
||||||
|
@ -1031,13 +1031,13 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
|
|||||||
exponent -= incr;
|
exponent -= incr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (int_no + exponent > MAX_10_EXP + 1)
|
if (__builtin_expect (int_no + exponent > MAX_10_EXP + 1, 0))
|
||||||
{
|
{
|
||||||
__set_errno (ERANGE);
|
__set_errno (ERANGE);
|
||||||
return negative ? -FLOAT_HUGE_VAL : FLOAT_HUGE_VAL;
|
return negative ? -FLOAT_HUGE_VAL : FLOAT_HUGE_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (exponent < MIN_10_EXP - (DIG + 1))
|
if (__builtin_expect (exponent < MIN_10_EXP - (DIG + 1), 0))
|
||||||
{
|
{
|
||||||
__set_errno (ERANGE);
|
__set_errno (ERANGE);
|
||||||
return 0.0;
|
return 0.0;
|
||||||
|
Loading…
Reference in New Issue
Block a user