* stdio-common/vfprintf.c [USE_IN_LIBIO]: Use _IO_cleanup_region_start
	instead of __libc_cleanup_region_start and _IO_cleanup_region_end
	instead of __libc_cleanup_region_end.

	* sysdeps/unix/sysv/linux/i386/system.c (CLEANUP_HANDLER): Pass 1
	as first parameter to __libc_cleanup_region_start.
This commit is contained in:
Ulrich Drepper 2003-01-28 06:46:50 +00:00
parent 68ff8426c6
commit 1fc469088e
4 changed files with 23 additions and 10 deletions

View File

@ -1,5 +1,12 @@
2003-01-27 Ulrich Drepper <drepper@redhat.com>
* stdio-common/vfprintf.c [USE_IN_LIBIO]: Use _IO_cleanup_region_start
instead of __libc_cleanup_region_start and _IO_cleanup_region_end
instead of __libc_cleanup_region_end.
* sysdeps/unix/sysv/linux/i386/system.c (CLEANUP_HANDLER): Pass 1
as first parameter to __libc_cleanup_region_start.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c
(__fe_nomask_env): Use __prctl not prctl.
* sysdeps/unix/sysv/linux/syscalls.list: Add __prctl alias for

View File

@ -348,12 +348,17 @@ typedef pthread_key_t __libc_key_t;
/* Start critical region with cleanup. */
#define __libc_cleanup_region_start(DOIT, FCT, ARG) \
{ struct _pthread_cleanup_buffer _buffer; \
int _avail = PTF(_pthread_cleanup_push_defer) != NULL; \
if (_avail) { \
PTF(_pthread_cleanup_push_defer) (&_buffer, FCT, ARG); \
} else if (DOIT) { \
_buffer.__routine = (FCT); \
_buffer.__arg = (ARG); \
int _avail; \
if (DOIT) { \
_avail = PTF(_pthread_cleanup_push_defer) != NULL; \
if (_avail) { \
PTF(_pthread_cleanup_push_defer) (&_buffer, FCT, ARG); \
} else { \
_buffer.__routine = (FCT); \
_buffer.__arg = (ARG); \
} \
} else { \
_avail = 0; \
}
/* End critical region with cleanup. */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
/* Copyright (C) 1991-2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -1307,7 +1307,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
/* Lock stream. */
#ifdef USE_IN_LIBIO
__libc_cleanup_region_start (1, (void (*) (void *)) &_IO_funlockfile, s);
_IO_cleanup_region_start ((void (*) (void *)) &_IO_funlockfile, s);
_IO_flockfile (s);
#else
__libc_cleanup_region_start (1, (void (*) (void *)) &__funlockfile, s);
@ -1909,10 +1909,11 @@ all_done:
/* Unlock the stream. */
#ifdef USE_IN_LIBIO
_IO_funlockfile (s);
_IO_cleanup_region_end (0);
#else
__funlockfile (s);
#endif
__libc_cleanup_region_end (0);
#endif
return done;
}

View File

@ -40,7 +40,7 @@
static void cancel_handler (void *arg);
#define CLEANUP_HANDLER \
__libc_cleanup_region_start (0, cancel_handler, &pid)
__libc_cleanup_region_start (1, cancel_handler, &pid)
#define CLEANUP_RESET \
__libc_cleanup_region_end (0)