2010-04-06 Dave Korn <dave.korn.cygwin@googlemail.com>
* libc/stdlib/__atexit.c (__atexit_lock): Initialise as recursive rather than non-recursive lock type. (__register_exitproc): Use recursive locking APIs on it. * libc/stdlib/__call_atexit.c (__call_exitprocs): Likewise.
This commit is contained in:
parent
385b0add19
commit
5f46e4094f
|
@ -1,3 +1,10 @@
|
|||
2010-04-06 Dave Korn <dave.korn.cygwin@googlemail.com>
|
||||
|
||||
* libc/stdlib/__atexit.c (__atexit_lock): Initialise as recursive
|
||||
rather than non-recursive lock type.
|
||||
(__register_exitproc): Use recursive locking APIs on it.
|
||||
* libc/stdlib/__call_atexit.c (__call_exitprocs): Likewise.
|
||||
|
||||
2010-04-06 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* libc/stdlib/btowc.c (btowc): Reorganize EOF check. Fix incorrect
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
/* Make this a weak reference to avoid pulling in malloc. */
|
||||
void * malloc(size_t) _ATTRIBUTE((__weak__));
|
||||
__LOCK_INIT(, __atexit_lock);
|
||||
__LOCK_INIT_RECURSIVE(, __atexit_lock);
|
||||
|
||||
/*
|
||||
* Register a function to be performed at exit or on shared library unload.
|
||||
|
@ -28,7 +28,7 @@ _DEFUN (__register_exitproc,
|
|||
register struct _atexit *p;
|
||||
|
||||
#ifndef __SINGLE_THREAD__
|
||||
__lock_acquire(__atexit_lock);
|
||||
__lock_acquire_recursive(__atexit_lock);
|
||||
#endif
|
||||
|
||||
p = _GLOBAL_REENT->_atexit;
|
||||
|
@ -48,7 +48,7 @@ _DEFUN (__register_exitproc,
|
|||
if (p == NULL)
|
||||
{
|
||||
#ifndef __SINGLE_THREAD__
|
||||
__lock_release(__atexit_lock);
|
||||
__lock_release_recursive(__atexit_lock);
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ _DEFUN (__register_exitproc,
|
|||
}
|
||||
p->_fns[p->_ind++] = fn;
|
||||
#ifndef __SINGLE_THREAD__
|
||||
__lock_release(__atexit_lock);
|
||||
__lock_release_recursive(__atexit_lock);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ _DEFUN (__call_exitprocs, (code, d),
|
|||
|
||||
|
||||
#ifndef __SINGLE_THREAD__
|
||||
__lock_acquire(__atexit_lock);
|
||||
__lock_acquire_recursive(__atexit_lock);
|
||||
#endif
|
||||
|
||||
restart:
|
||||
|
@ -115,7 +115,7 @@ _DEFUN (__call_exitprocs, (code, d),
|
|||
#endif
|
||||
}
|
||||
#ifndef __SINGLE_THREAD__
|
||||
__lock_release(__atexit_lock);
|
||||
__lock_release_recursive(__atexit_lock);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue