From 0261d33f8745765a829fe5d59cd4dc6534bcd1b3 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 29 Aug 2003 19:58:49 +0000 Subject: Update. 2003-08-29 Jakub Jelinek * libio/Makefile: Compile fputc.c, fputwc.c, freopen64.c, freopen.c, fseek.c, fseeko64.c, fseeko.c, ftello64.c, ftello.c, fwide.c, getc.c, getchar.c, getwc.c, getwchar.c, iofclose.c, iofflush.c, iofgetpos64.c, iofgetpos.c, iofgets.c, iofgetws.c, iofputs.c, iofputws.c, iofread.c, iofsetpos64.c, iofsetpos.c, ioftell.c, iofwrite.c, iogetdelim.c, iogetline.c, iogets.c, iogetwline.c, ioputs.c, ioseekoff.c, ioseekpos.c, iosetbuffer.c, iosetvbuf.c, ioungetc.c, ioungetwc.c, oldfileops.c, oldiofclose.c, oldiofgetpos64.c, oldiofgetpos.c, oldiofsetpos64.c, oldiofsetpos.c, peekc.c, putc.c, putchar.c, putwc.c, putwchar.c and rewind.c with exceptions. * sysdeps/generic/bits/stdio-lock.h (_IO_acquire_lock, _IO_release_lock): Define. * libio/fileops.c (_IO_new_file_underflow): Use it. * libio/fputc.c (fputc): Likewise. * libio/fputwc.c (fputwc): Likewise. * libio/freopen64.c (freopen64): * libio/freopen.c (freopen): Likewise. * libio/fseek.c (fseek): Likewise. * libio/fseeko64.c (fseeko64): Likewise. * libio/fseeko.c (fseeko): Likewise. * libio/ftello64.c (ftello64): Likewise. * libio/ftello.c (ftello): Likewise. * libio/fwide.c (fwide): Likewise. * libio/getc.c (_IO_getc): Likewise. * libio/getchar.c (getchar): Likewise. * libio/getwc.c (_IO_getwc): Likewise. * libio/getwchar.c (getwchar): Likewise. * libio/iofclose.c (_IO_new_fclose): * libio/iofflush.c (_IO_fflush): Likewise. * libio/iofgetpos64.c (_IO_new_fgetpos64): Likewise. * libio/iofgetpos.c (_IO_new_fgetpos): Likewise. * libio/iofgets.c (_IO_fgets): Likewise. * libio/iofgetws.c (fgetws): Likewise. * libio/iofputs.c (_IO_fputs): * libio/iofputws.c (_IO_fputs): Likewise. * libio/iofread.c (_IO_fread): Likewise. * libio/iofsetpos64.c (_IO_new_fsetpos64): Likewise. * libio/iofsetpos.c (_IO_new_fsetpos): Likewise. * libio/ioftell.c (_IO_ftell): Likewise. * libio/iofwrite.c (_IO_fwrite): Likewise. * libio/iogetdelim.c (_IO_getdelim): Likewise. * libio/iogets.c (_IO_gets): Likewise. * libio/ioputs.c (_IO_puts): Likewise. * libio/ioseekoff.c (_IO_seekoff): Likewise. * libio/ioseekpos.c (_IO_seekpos): Likewise. * libio/iosetbuffer.c (_IO_setbuffer): Likewise. * libio/iosetvbuf.c (_IO_setvbuf): Likewise. * libio/ioungetc.c (_IO_ungetc): Likewise. * libio/ioungetwc.c (ungetwc): Likewise. * libio/oldiofclose.c (_IO_old_fclose): Likewise. * libio/oldiofgetpos64.c (_IO_old_fgetpos64): Likewise. * libio/oldiofgetpos.c (_IO_old_fgetpos): Likewise. * libio/oldiofsetpos64.c (_IO_old_fsetpos64): Likewise. * libio/oldiofsetpos.c (_IO_old_fsetpos): Likewise. * libio/peekc.c (_IO_peekc_locked): Likewise. * libio/putc.c (_IO_putc): Likewise. * libio/putchar.c (putchar): Likewise. * libio/putwc.c (putwc): Likewise. * libio/putwchar.c (putwchar): Likewise. * libio/rewind.c (rewind): Likewise. * libio/wfileops.c (_IO_wfile_underflow): Likewise. --- libio/Makefile | 54 ++++++++++++++++++++++++++++++++++++++++++++++++-- libio/fileops.c | 7 ++----- libio/fputc.c | 8 +++----- libio/fputwc.c | 8 +++----- libio/freopen.c | 6 ++---- libio/freopen64.c | 6 ++---- libio/fseek.c | 9 ++++----- libio/fseeko.c | 8 +++----- libio/fseeko64.c | 8 +++----- libio/ftello.c | 8 +++----- libio/ftello64.c | 8 +++----- libio/fwide.c | 10 +++------- libio/getc.c | 9 ++++----- libio/getchar.c | 9 +++------ libio/getwc.c | 9 ++++----- libio/getwchar.c | 9 +++------ libio/iofclose.c | 6 ++---- libio/iofflush.c | 9 ++++----- libio/iofgetpos.c | 8 +++----- libio/iofgetpos64.c | 8 +++----- libio/iofgets.c | 9 ++++----- libio/iofgetws.c | 9 ++++----- libio/iofputs.c | 6 ++---- libio/iofputws.c | 9 ++++----- libio/iofread.c | 9 ++++----- libio/iofsetpos.c | 9 ++++----- libio/iofsetpos64.c | 9 ++++----- libio/ioftell.c | 6 ++---- libio/iofwrite.c | 6 ++---- libio/iogetdelim.c | 8 +++----- libio/iogets.c | 9 +++------ libio/ioputs.c | 7 ++----- libio/ioseekoff.c | 8 ++------ libio/ioseekpos.c | 10 +++------- libio/iosetbuffer.c | 6 ++---- libio/iosetvbuf.c | 9 ++++----- libio/ioungetc.c | 8 +++----- libio/ioungetwc.c | 9 ++++----- libio/oldiofclose.c | 6 ++---- libio/oldiofgetpos.c | 9 ++++----- libio/oldiofgetpos64.c | 9 ++++----- libio/oldiofsetpos.c | 9 ++++----- libio/oldiofsetpos64.c | 9 ++++----- libio/peekc.c | 8 +++----- libio/putc.c | 9 ++++----- libio/putchar.c | 9 +++------ libio/putwc.c | 9 ++++----- libio/putwchar.c | 9 +++------ libio/rewind.c | 8 +++----- libio/wfileops.c | 7 ++----- 50 files changed, 205 insertions(+), 249 deletions(-) (limited to 'libio') diff --git a/libio/Makefile b/libio/Makefile index ad2d5dd..645448f 100644 --- a/libio/Makefile +++ b/libio/Makefile @@ -75,10 +75,60 @@ CPPFLAGS += -D_IO_MTSAFE_IO endif # Support for exception handling. -CFLAGS-genops.c = $(exceptions) -CFLAGS-wgenops.c = $(exceptions) CFLAGS-fileops.c = $(exceptions) +CFLAGS-fputc.c = $(exceptions) +CFLAGS-fputwc.c = $(exceptions) +CFLAGS-freopen64.c = $(exceptions) +CFLAGS-freopen.c = $(exceptions) +CFLAGS-fseek.c = $(exceptions) +CFLAGS-fseeko64.c = $(exceptions) +CFLAGS-fseeko.c = $(exceptions) +CFLAGS-ftello64.c = $(exceptions) +CFLAGS-ftello.c = $(exceptions) +CFLAGS-fwide.c = $(exceptions) +CFLAGS-genops.c = $(exceptions) +CFLAGS-getc.c = $(exceptions) +CFLAGS-getchar.c = $(exceptions) +CFLAGS-getwc.c = $(exceptions) +CFLAGS-getwchar.c = $(exceptions) +CFLAGS-iofclose.c = $(exceptions) +CFLAGS-iofflush.c = $(exceptions) +CFLAGS-iofgetpos64.c = $(exceptions) +CFLAGS-iofgetpos.c = $(exceptions) +CFLAGS-iofgets.c = $(exceptions) +CFLAGS-iofgetws.c = $(exceptions) +CFLAGS-iofputs.c = $(exceptions) +CFLAGS-iofputws.c = $(exceptions) +CFLAGS-iofread.c = $(exceptions) +CFLAGS-iofsetpos64.c = $(exceptions) +CFLAGS-iofsetpos.c = $(exceptions) +CFLAGS-ioftell.c = $(exceptions) +CFLAGS-iofwrite.c = $(exceptions) +CFLAGS-iogetdelim.c = $(exceptions) +CFLAGS-iogetline.c = $(exceptions) +CFLAGS-iogets.c = $(exceptions) +CFLAGS-iogetwline.c = $(exceptions) +CFLAGS-ioputs.c = $(exceptions) +CFLAGS-ioseekoff.c = $(exceptions) +CFLAGS-ioseekpos.c = $(exceptions) +CFLAGS-iosetbuffer.c = $(exceptions) +CFLAGS-iosetvbuf.c = $(exceptions) +CFLAGS-ioungetc.c = $(exceptions) +CFLAGS-ioungetwc.c = $(exceptions) +CFLAGS-oldfileops.c = $(exceptions) +CFLAGS-oldiofclose.c = $(exceptions) +CFLAGS-oldiofgetpos64.c = $(exceptions) +CFLAGS-oldiofgetpos.c = $(exceptions) +CFLAGS-oldiofsetpos64.c = $(exceptions) +CFLAGS-oldiofsetpos.c = $(exceptions) +CFLAGS-peekc.c = $(exceptions) +CFLAGS-putc.c = $(exceptions) +CFLAGS-putchar.c = $(exceptions) +CFLAGS-putwc.c = $(exceptions) +CFLAGS-putwchar.c = $(exceptions) +CFLAGS-rewind.c = $(exceptions) CFLAGS-wfileops.c = $(exceptions) +CFLAGS-wgenops.c = $(exceptions) # XXX Do we need filedoalloc and wfiledoalloc? Others? CFLAGS-tst_putwc.c = -DOBJPFX=\"$(objpfx)\" diff --git a/libio/fileops.c b/libio/fileops.c index 0faf01f..4993630 100644 --- a/libio/fileops.c +++ b/libio/fileops.c @@ -562,16 +562,13 @@ _IO_new_file_underflow (fp) traditional Unix systems did this for stdout. stderr better not be line buffered. So we do just that here explicitly. --drepper */ - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, - _IO_stdout); - _IO_flockfile (_IO_stdout); + _IO_acquire_lock (_IO_stdout); if ((_IO_stdout->_flags & (_IO_LINKED | _IO_NO_WRITES | _IO_LINE_BUF)) == (_IO_LINKED | _IO_LINE_BUF)) _IO_OVERFLOW (_IO_stdout, EOF); - _IO_funlockfile (_IO_stdout); - _IO_cleanup_region_end (0); + _IO_release_lock (_IO_stdout); #endif } diff --git a/libio/fputc.c b/libio/fputc.c index 5ef048f..8fd0b80 100644 --- a/libio/fputc.c +++ b/libio/fputc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1996, 1997, 1998, 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 @@ -35,11 +35,9 @@ fputc (c, fp) { int result; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); result = _IO_putc_unlocked (c, fp); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/fputwc.c b/libio/fputwc.c index 600d730..8c74943 100644 --- a/libio/fputwc.c +++ b/libio/fputwc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. +/* Copyright (C) 1993,1996,1997,1998,1999,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 @@ -35,13 +35,11 @@ fputwc (wc, fp) { int result; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); if (_IO_fwide (fp, 1) < 0) result = WEOF; else result = _IO_putwc_unlocked (wc, fp); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/freopen.c b/libio/freopen.c index cae9d30..d94a562 100644 --- a/libio/freopen.c +++ b/libio/freopen.c @@ -44,8 +44,7 @@ freopen (filename, mode, fp) CHECK_FILE (fp, NULL); if (!(fp->_flags & _IO_IS_FILEBUF)) return NULL; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); if (filename == NULL && _IO_fileno (fp) >= 0) { fd = __dup (_IO_fileno (fp)); @@ -84,7 +83,6 @@ freopen (filename, mode, fp) if (filename != NULL) free ((char *) filename); } - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/freopen64.c b/libio/freopen64.c index d57994d..f8da78c 100644 --- a/libio/freopen64.c +++ b/libio/freopen64.c @@ -44,8 +44,7 @@ freopen64 (filename, mode, fp) CHECK_FILE (fp, NULL); if (!(fp->_flags & _IO_IS_FILEBUF)) return NULL; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); if (filename == NULL && _IO_fileno (fp) >= 0) { fd = __dup (_IO_fileno (fp)); @@ -68,8 +67,7 @@ freopen64 (filename, mode, fp) if (filename != NULL) free ((char *) filename); } - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; #else __set_errno (ENOSYS); diff --git a/libio/fseek.c b/libio/fseek.c index 831a4d4..0515822 100644 --- a/libio/fseek.c +++ b/libio/fseek.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993,1995,1996,1997,1998,2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1996, 1997, 1998, 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 @@ -36,11 +37,9 @@ fseek (fp, offset, whence) { int result; CHECK_FILE (fp, -1); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); result = _IO_fseek (fp, offset, whence); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } libc_hidden_def (fseek) diff --git a/libio/fseeko.c b/libio/fseeko.c index 8087b95..d464c99 100644 --- a/libio/fseeko.c +++ b/libio/fseeko.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1993,1995,1996,1997,1998,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 @@ -36,10 +36,8 @@ fseeko (fp, offset, whence) { int result; CHECK_FILE (fp, -1); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); result = _IO_fseek (fp, offset, whence); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/fseeko64.c b/libio/fseeko64.c index 149e701..5dbfc45 100644 --- a/libio/fseeko64.c +++ b/libio/fseeko64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1993,1995,1996,1997,1998,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 @@ -38,11 +38,9 @@ fseeko64 (fp, offset, whence) #ifdef _G_LSEEK64 int result; CHECK_FILE (fp, -1); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); result = _IO_fseek (fp, offset, whence); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; #else __set_errno (ENOSYS); diff --git a/libio/ftello.c b/libio/ftello.c index e148664..4975a0b 100644 --- a/libio/ftello.c +++ b/libio/ftello.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995-2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995-2001, 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 @@ -37,16 +37,14 @@ ftello (fp) { _IO_off64_t pos; CHECK_FILE (fp, -1L); - _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); pos = _IO_seekoff_unlocked (fp, 0, _IO_seek_cur, 0); if (_IO_in_backup (fp)) { if (fp->_mode <= 0) pos -= fp->_IO_save_end - fp->_IO_save_base; } - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); if (pos == _IO_pos_BAD) { #ifdef EIO diff --git a/libio/ftello64.c b/libio/ftello64.c index b2da11d..0275c0c 100644 --- a/libio/ftello64.c +++ b/libio/ftello64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995-2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995-2001, 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 @@ -38,16 +38,14 @@ ftello64 (fp) #ifdef _G_LSEEK64 _IO_off64_t pos; CHECK_FILE (fp, -1L); - _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); pos = _IO_seekoff_unlocked (fp, 0, _IO_seek_cur, 0); if (_IO_in_backup (fp)) { if (fp->_mode <= 0) pos -= fp->_IO_save_end - fp->_IO_save_base; } - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); if (pos == _IO_pos_BAD) { #ifdef EIO diff --git a/libio/fwide.c b/libio/fwide.c index c435e5e..21214a9 100644 --- a/libio/fwide.c +++ b/libio/fwide.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2000, 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 @@ -44,13 +44,9 @@ fwide (fp, mode) or the orientation already has been determined. */ return fp->_mode; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); - + _IO_acquire_lock (fp); result = _IO_fwide (fp, mode); - - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/getc.c b/libio/getc.c index a35dcb9..9121e40 100644 --- a/libio/getc.c +++ b/libio/getc.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993, 95, 96, 97, 98, 99 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 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 @@ -36,11 +37,9 @@ _IO_getc (fp) { int result; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); result = _IO_getc_unlocked (fp); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/getchar.c b/libio/getchar.c index 8ce67fe..d256050 100644 --- a/libio/getchar.c +++ b/libio/getchar.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1996, 1997, 1998, 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 @@ -34,12 +34,9 @@ int getchar () { int result; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, - _IO_stdin); - _IO_flockfile (_IO_stdin); + _IO_acquire_lock (_IO_stdin); result = _IO_getc_unlocked (_IO_stdin); - _IO_funlockfile (_IO_stdin); - _IO_cleanup_region_end (0); + _IO_release_lock (_IO_stdin); return result; } diff --git a/libio/getwc.c b/libio/getwc.c index 0617e2d..656f1d8 100644 --- a/libio/getwc.c +++ b/libio/getwc.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 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 @@ -37,11 +38,9 @@ _IO_getwc (fp) { wint_t result; CHECK_FILE (fp, WEOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); result = _IO_getwc_unlocked (fp); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/getwchar.c b/libio/getwchar.c index 0298e22..a477b45 100644 --- a/libio/getwchar.c +++ b/libio/getwchar.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. +/* Copyright (C) 1993,1996,1997,1998,1999,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 @@ -34,11 +34,8 @@ wint_t getwchar () { wint_t result; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, - _IO_stdin); - _IO_flockfile (_IO_stdin); + _IO_acquire_lock (_IO_stdin); result = _IO_getwc_unlocked (_IO_stdin); - _IO_funlockfile (_IO_stdin); - _IO_cleanup_region_end (0); + _IO_release_lock (_IO_stdin); return result; } diff --git a/libio/iofclose.c b/libio/iofclose.c index eb01c88..da0f9fe 100644 --- a/libio/iofclose.c +++ b/libio/iofclose.c @@ -57,15 +57,13 @@ _IO_new_fclose (fp) if (fp->_IO_file_flags & _IO_IS_FILEBUF) INTUSE(_IO_un_link) ((struct _IO_FILE_plus *) fp); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); if (fp->_IO_file_flags & _IO_IS_FILEBUF) status = INTUSE(_IO_file_close_it) (fp); else status = fp->_flags & _IO_ERR_SEEN ? -1 : 0; _IO_FINISH (fp); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); if (fp->_mode > 0) { #if _LIBC diff --git a/libio/iofflush.c b/libio/iofflush.c index d1a76cc..d2d57f5 100644 --- a/libio/iofflush.c +++ b/libio/iofflush.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993,1995,1996,1997,1998,2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1996, 1997, 1998, 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 @@ -38,11 +39,9 @@ _IO_fflush (fp) { int result; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); result = _IO_SYNC (fp) ? EOF : 0; - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } } diff --git a/libio/iofgetpos.c b/libio/iofgetpos.c index 0c80b2f..aff39bb 100644 --- a/libio/iofgetpos.c +++ b/libio/iofgetpos.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995-2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995-2001, 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 @@ -38,8 +38,7 @@ _IO_new_fgetpos (fp, posp) _IO_off64_t pos; int result = 0; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); pos = _IO_seekoff_unlocked (fp, 0, _IO_seek_cur, 0); if (_IO_in_backup (fp)) { @@ -72,8 +71,7 @@ _IO_new_fgetpos (fp, posp) posp->__state = fp->_wide_data->_IO_state; } - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/iofgetpos64.c b/libio/iofgetpos64.c index 3ad7e11..029556f 100644 --- a/libio/iofgetpos64.c +++ b/libio/iofgetpos64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995-2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995-2001, 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 @@ -38,16 +38,14 @@ _IO_new_fgetpos64 (fp, posp) #ifdef _G_LSEEK64 _IO_off64_t pos; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); pos = _IO_seekoff_unlocked (fp, 0, _IO_seek_cur, 0); if (_IO_in_backup (fp)) { if (fp->_mode <= 0) pos -= fp->_IO_save_end - fp->_IO_save_base; } - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); if (pos == _IO_pos_BAD) { /* ANSI explicitly requires setting errno to a positive value on diff --git a/libio/iofgets.c b/libio/iofgets.c index ea1d3ed..879cc97 100644 --- a/libio/iofgets.c +++ b/libio/iofgets.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993, 95, 96, 97, 98, 99, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 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 @@ -40,8 +41,7 @@ _IO_fgets (buf, n, fp) CHECK_FILE (fp, NULL); if (n <= 0) return NULL; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); /* This is very tricky since a file descriptor may be in the non-blocking mode. The error flag doesn't mean much in this case. We return an error only when there is a new error. */ @@ -59,8 +59,7 @@ _IO_fgets (buf, n, fp) result = buf; } fp->_IO_file_flags |= old_error; - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/iofgetws.c b/libio/iofgetws.c index 741bb49..654c051 100644 --- a/libio/iofgetws.c +++ b/libio/iofgetws.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993, 95, 96, 97, 98, 99, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2001 + 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 @@ -40,8 +41,7 @@ fgetws (buf, n, fp) CHECK_FILE (fp, NULL); if (n <= 0) return NULL; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); /* This is very tricky since a file descriptor may be in the non-blocking mode. The error flag doesn't mean much in this case. We return an error only when there is a new error. */ @@ -58,7 +58,6 @@ fgetws (buf, n, fp) result = buf; } fp->_IO_file_flags |= old_error; - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/iofputs.c b/libio/iofputs.c index 088fd5f..b596a99 100644 --- a/libio/iofputs.c +++ b/libio/iofputs.c @@ -37,13 +37,11 @@ _IO_fputs (str, fp) _IO_size_t len = strlen (str); int result = EOF; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); if ((_IO_vtable_offset (fp) != 0 || _IO_fwide (fp, -1) == -1) && _IO_sputn (fp, str, len) == len) result = 1; - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } libc_hidden_def (_IO_fputs) diff --git a/libio/iofputws.c b/libio/iofputws.c index c23156d..44e6005 100644 --- a/libio/iofputws.c +++ b/libio/iofputws.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993,1996,1997,1998,1999,2000 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1996, 1997, 1998, 1999, 2000, 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 @@ -36,12 +37,10 @@ fputws (str, fp) _IO_size_t len = __wcslen (str); int result = EOF; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); if (_IO_fwide (fp, 1) == 1 && _IO_sputn (fp, (char *) str, len) == len) result = 1; - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/iofread.c b/libio/iofread.c index 6eb99da..c015baf 100644 --- a/libio/iofread.c +++ b/libio/iofread.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993,1995,1997,1998,1999,2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997, 1998, 1999, 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 @@ -39,11 +40,9 @@ _IO_fread (buf, size, count, fp) CHECK_FILE (fp, 0); if (bytes_requested == 0) return 0; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); bytes_read = INTUSE(_IO_sgetn) (fp, (char *) buf, bytes_requested); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return bytes_requested == bytes_read ? count : bytes_read / size; } INTDEF(_IO_fread) diff --git a/libio/iofsetpos.c b/libio/iofsetpos.c index f3821e2..a907b02 100644 --- a/libio/iofsetpos.c +++ b/libio/iofsetpos.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993, 1995, 1997-2000, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997, 1998, 1999, 2000, 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 @@ -36,8 +37,7 @@ _IO_new_fsetpos (fp, posp) { int result; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); if (_IO_seekpos_unlocked (fp, posp->__pos, _IOS_INPUT|_IOS_OUTPUT) == _IO_pos_BAD) { @@ -57,8 +57,7 @@ _IO_new_fsetpos (fp, posp) /* This is a stateful encoding, restore the state. */ fp->_wide_data->_IO_state = posp->__state; } - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/iofsetpos64.c b/libio/iofsetpos64.c index 4746d72..5ef8104 100644 --- a/libio/iofsetpos64.c +++ b/libio/iofsetpos64.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993, 1995, 1997-2000, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997, 1998, 1999, 2000, 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 @@ -37,8 +38,7 @@ _IO_new_fsetpos64 (fp, posp) #ifdef _G_LSEEK64 int result; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); if (_IO_seekpos_unlocked (fp, posp->__pos, _IOS_INPUT|_IOS_OUTPUT) == _IO_pos_BAD) { @@ -58,8 +58,7 @@ _IO_new_fsetpos64 (fp, posp) /* This is a stateful encoding, safe the state. */ fp->_wide_data->_IO_state = posp->__state; } - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; #else __set_errno (ENOSYS); diff --git a/libio/ioftell.c b/libio/ioftell.c index 589a2a2..b991ef6 100644 --- a/libio/ioftell.c +++ b/libio/ioftell.c @@ -36,16 +36,14 @@ _IO_ftell (fp) { _IO_off64_t pos; CHECK_FILE (fp, -1L); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); pos = _IO_seekoff_unlocked (fp, 0, _IO_seek_cur, 0); if (_IO_in_backup (fp)) { if (_IO_vtable_offset (fp) != 0 || fp->_mode <= 0) pos -= fp->_IO_save_end - fp->_IO_save_base; } - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); if (pos == _IO_pos_BAD) { #ifdef EIO diff --git a/libio/iofwrite.c b/libio/iofwrite.c index 6f0d273..1f4331c 100644 --- a/libio/iofwrite.c +++ b/libio/iofwrite.c @@ -40,12 +40,10 @@ _IO_fwrite (buf, size, count, fp) CHECK_FILE (fp, 0); if (request == 0) return 0; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); if (_IO_vtable_offset (fp) != 0 || _IO_fwide (fp, -1) == -1) written = _IO_sputn (fp, (const char *) buf, request); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); if (written == request) return count; else diff --git a/libio/iogetdelim.c b/libio/iogetdelim.c index edc5228..3d0c976 100644 --- a/libio/iogetdelim.c +++ b/libio/iogetdelim.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994, 1996, 1997, 1998, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1994,1996,1997,1998,2001,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 @@ -55,8 +55,7 @@ _IO_getdelim (lineptr, n, delimiter, fp) return -1; } CHECK_FILE (fp, -1); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); if (_IO_ferror_unlocked (fp)) { result = -1; @@ -120,8 +119,7 @@ _IO_getdelim (lineptr, n, delimiter, fp) result = cur_len; unlock_return: - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/iogets.c b/libio/iogets.c index 95e8368..a901b8a 100644 --- a/libio/iogets.c +++ b/libio/iogets.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1996, 1997, 1998, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993,1996,1997,1998,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 @@ -36,9 +36,7 @@ _IO_gets (buf) int ch; char *retval; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, - _IO_stdin); - _IO_flockfile (_IO_stdin); + _IO_acquire_lock (_IO_stdin); ch = _IO_getc_unlocked (_IO_stdin); if (ch == EOF) { @@ -67,8 +65,7 @@ _IO_gets (buf) buf[count] = 0; retval = buf; unlock_return: - _IO_funlockfile (_IO_stdin); - _IO_cleanup_region_end (0); + _IO_release_lock (_IO_stdin); return retval; } diff --git a/libio/ioputs.c b/libio/ioputs.c index f878ea6..2f43e99 100644 --- a/libio/ioputs.c +++ b/libio/ioputs.c @@ -34,9 +34,7 @@ _IO_puts (str) { int result = EOF; _IO_size_t len = strlen (str); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, - _IO_stdout); - _IO_flockfile (_IO_stdout); + _IO_acquire_lock (_IO_stdout); if ((_IO_vtable_offset (_IO_stdout) != 0 || _IO_fwide (_IO_stdout, -1) == -1) @@ -44,8 +42,7 @@ _IO_puts (str) && _IO_putc_unlocked ('\n', _IO_stdout) != EOF) result = len + 1; - _IO_funlockfile (_IO_stdout); - _IO_cleanup_region_end (0); + _IO_release_lock (_IO_stdout); return result; } diff --git a/libio/ioseekoff.c b/libio/ioseekoff.c index 9229166..dd8a37f 100644 --- a/libio/ioseekoff.c +++ b/libio/ioseekoff.c @@ -81,12 +81,8 @@ _IO_seekoff (fp, offset, dir, mode) { _IO_off64_t retval; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); - + _IO_acquire_lock (fp); retval = _IO_seekoff_unlocked (fp, offset, dir, mode); - - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return retval; } diff --git a/libio/ioseekpos.c b/libio/ioseekpos.c index 37d32af..4683ffe 100644 --- a/libio/ioseekpos.c +++ b/libio/ioseekpos.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1997, 1998, 1999, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993,1997,1998,1999,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 @@ -59,12 +59,8 @@ _IO_seekpos (fp, pos, mode) { _IO_off64_t retval; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); - + _IO_acquire_lock (fp); retval = _IO_seekpos_unlocked (fp, pos, mode); - - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return retval; } diff --git a/libio/iosetbuffer.c b/libio/iosetbuffer.c index 2497304..d43d0eb 100644 --- a/libio/iosetbuffer.c +++ b/libio/iosetbuffer.c @@ -35,8 +35,7 @@ _IO_setbuffer (fp, buf, size) _IO_size_t size; { CHECK_FILE (fp, ); - _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); fp->_flags &= ~_IO_LINE_BUF; if (!buf) size = 0; @@ -44,8 +43,7 @@ _IO_setbuffer (fp, buf, size) if (_IO_vtable_offset (fp) == 0 && fp->_mode == 0 && _IO_CHECK_WIDE (fp)) /* We also have to set the buffer using the wide char function. */ (void) _IO_WSETBUF (fp, buf, size); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); } INTDEF(_IO_setbuffer) diff --git a/libio/iosetvbuf.c b/libio/iosetvbuf.c index 06d9f73..7580230 100644 --- a/libio/iosetvbuf.c +++ b/libio/iosetvbuf.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993,96,97,98,99,2000,2001,2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1996, 1997, 1998, 1999, 2000, 2001, 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 @@ -40,8 +41,7 @@ _IO_setvbuf (fp, buf, mode, size) { int result; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); switch (mode) { case _IOFBF: @@ -96,8 +96,7 @@ _IO_setvbuf (fp, buf, mode, size) result = _IO_SETBUF (fp, buf, size) == NULL ? EOF : 0; unlock_return: - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } INTDEF(_IO_setvbuf) diff --git a/libio/ioungetc.c b/libio/ioungetc.c index d32359b..df746b5 100644 --- a/libio/ioungetc.c +++ b/libio/ioungetc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993,1996,1997,1998,2002 Free Software Foundation, Inc. +/* Copyright (C) 1993,1996,1997,1998,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 @@ -36,11 +36,9 @@ _IO_ungetc (c, fp) CHECK_FILE (fp, EOF); if (c == EOF) return EOF; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); result = INTUSE(_IO_sputbackc) (fp, (unsigned char) c); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/ioungetwc.c b/libio/ioungetwc.c index 1bff412..00d3e96 100644 --- a/libio/ioungetwc.c +++ b/libio/ioungetwc.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993, 1996-1999, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1996, 1997, 1998, 1999, 2001, 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 @@ -35,14 +36,12 @@ ungetwc (c, fp) { int result; CHECK_FILE (fp, WEOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); _IO_fwide (fp, 1); if (c == WEOF) result = WEOF; else result = INTUSE(_IO_sputbackwc) (fp, c); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/oldiofclose.c b/libio/oldiofclose.c index 18db7b8..3762279 100644 --- a/libio/oldiofclose.c +++ b/libio/oldiofclose.c @@ -52,15 +52,13 @@ _IO_old_fclose (fp) if (fp->_IO_file_flags & _IO_IS_FILEBUF) INTUSE(_IO_un_link) ((struct _IO_FILE_plus *) fp); - _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); if (fp->_IO_file_flags & _IO_IS_FILEBUF) status = _IO_old_file_close_it (fp); else status = fp->_flags & _IO_ERR_SEEN ? -1 : 0; _IO_FINISH (fp); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); if (_IO_have_backup (fp)) INTUSE(_IO_free_backup_area) (fp); if (fp != _IO_stdin && fp != _IO_stdout && fp != _IO_stderr) diff --git a/libio/oldiofgetpos.c b/libio/oldiofgetpos.c index 596c405..b00a520 100644 --- a/libio/oldiofgetpos.c +++ b/libio/oldiofgetpos.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993,95,96,97,98,99,2000, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 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 @@ -38,13 +39,11 @@ _IO_old_fgetpos (fp, posp) { _IO_off_t pos; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); pos = _IO_seekoff_unlocked (fp, 0, _IO_seek_cur, 0); if (_IO_in_backup (fp)) pos -= fp->_IO_save_end - fp->_IO_save_base; - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); if (pos == _IO_pos_BAD) { /* ANSI explicitly requires setting errno to a positive value on diff --git a/libio/oldiofgetpos64.c b/libio/oldiofgetpos64.c index 4a38c38..b3a4e0e 100644 --- a/libio/oldiofgetpos64.c +++ b/libio/oldiofgetpos64.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993,95,96,97,98,99,2000, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 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 @@ -39,13 +40,11 @@ _IO_old_fgetpos64 (fp, posp) #ifdef _G_LSEEK64 _IO_off64_t pos; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); pos = _IO_seekoff_unlocked (fp, 0, _IO_seek_cur, 0); if (_IO_in_backup (fp)) pos -= fp->_IO_save_end - fp->_IO_save_base; - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); if (pos == _IO_pos_BAD) { /* ANSI explicitly requires setting errno to a positive value on diff --git a/libio/oldiofsetpos.c b/libio/oldiofsetpos.c index ce3bb12..23ef565 100644 --- a/libio/oldiofsetpos.c +++ b/libio/oldiofsetpos.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993,95,97,98,99,2000,2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997, 1998, 1999, 2000, 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 @@ -37,8 +38,7 @@ _IO_old_fsetpos (fp, posp) { int result; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); if (_IO_seekpos_unlocked (fp, posp->__pos, _IOS_INPUT|_IOS_OUTPUT) == _IO_pos_BAD) { @@ -52,8 +52,7 @@ _IO_old_fsetpos (fp, posp) } else result = 0; - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/oldiofsetpos64.c b/libio/oldiofsetpos64.c index 834f154..3475859 100644 --- a/libio/oldiofsetpos64.c +++ b/libio/oldiofsetpos64.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1993,95,97,98,99,2000,2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997, 1998, 1999, 2000, 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 @@ -39,8 +40,7 @@ _IO_old_fsetpos64 (fp, posp) #ifdef _G_LSEEK64 int result; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); if (_IO_seekpos_unlocked (fp, posp->__pos, _IOS_INPUT|_IOS_OUTPUT) == _IO_pos_BAD) { @@ -54,8 +54,7 @@ _IO_old_fsetpos64 (fp, posp) } else result = 0; - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; #else __set_errno (ENOSYS); diff --git a/libio/peekc.c b/libio/peekc.c index 95ba8ae..c829c5f 100644 --- a/libio/peekc.c +++ b/libio/peekc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1993,1995,1996,1997,1998,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 @@ -36,10 +36,8 @@ _IO_peekc_locked (fp) { int result; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); result = _IO_peekc_unlocked (fp); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } diff --git a/libio/putc.c b/libio/putc.c index 6495744..db3aab0 100644 --- a/libio/putc.c +++ b/libio/putc.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1991,1995,1996,1997,1998,2002 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995, 1996, 1997, 1998, 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 @@ -28,11 +29,9 @@ _IO_putc (c, fp) { int result; CHECK_FILE (fp, EOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); result = _IO_putc_unlocked (c, fp); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } INTDEF(_IO_putc) diff --git a/libio/putchar.c b/libio/putchar.c index ac20727..5b1f292 100644 --- a/libio/putchar.c +++ b/libio/putchar.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1991,1995,1996,1997,1998,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 @@ -26,12 +26,9 @@ putchar (c) int c; { int result; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, - _IO_stdout); - _IO_flockfile (_IO_stdout); + _IO_acquire_lock (_IO_stdout); result = _IO_putc_unlocked (c, _IO_stdout); - _IO_funlockfile (_IO_stdout); - _IO_cleanup_region_end (0); + _IO_release_lock (_IO_stdout); return result; } diff --git a/libio/putwc.c b/libio/putwc.c index 33da712..b43eb03 100644 --- a/libio/putwc.c +++ b/libio/putwc.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1991,95,96,97,98,99,2002 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995, 1996, 1997, 1998, 1999, 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 @@ -26,11 +27,9 @@ putwc (wc, fp) { wint_t result; CHECK_FILE (fp, WEOF); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); result = _IO_putwc_unlocked (wc, fp); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); return result; } libc_hidden_def (putwc) diff --git a/libio/putwchar.c b/libio/putwchar.c index 56fec58..d211640 100644 --- a/libio/putwchar.c +++ b/libio/putwchar.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 95, 96, 97, 98, 99 Free Software Foundation, Inc. +/* Copyright (C) 1991,95,96,97,98,99,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 @@ -24,11 +24,8 @@ putwchar (wc) wchar_t wc; { wint_t result; - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, - _IO_stdout); - _IO_flockfile (_IO_stdout); + _IO_acquire_lock (_IO_stdout); result = _IO_putwc_unlocked (wc, _IO_stdout); - _IO_funlockfile (_IO_stdout); - _IO_cleanup_region_end (0); + _IO_release_lock (_IO_stdout); return result; } diff --git a/libio/rewind.c b/libio/rewind.c index e1bdc57..e77e7b5 100644 --- a/libio/rewind.c +++ b/libio/rewind.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993,96,97,98,2002 Free Software Foundation, Inc. +/* Copyright (C) 1993,96,97,98,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 @@ -33,11 +33,9 @@ rewind (fp) _IO_FILE *fp; { CHECK_FILE (fp, ); - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); - _IO_flockfile (fp); + _IO_acquire_lock (fp); _IO_rewind (fp); _IO_clearerr (fp); - _IO_funlockfile (fp); - _IO_cleanup_region_end (0); + _IO_release_lock (fp); } libc_hidden_def (rewind) diff --git a/libio/wfileops.c b/libio/wfileops.c index 569a0d7..5292f48 100644 --- a/libio/wfileops.c +++ b/libio/wfileops.c @@ -217,16 +217,13 @@ _IO_wfile_underflow (fp) traditional Unix systems did this for stdout. stderr better not be line buffered. So we do just that here explicitly. --drepper */ - _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, - _IO_stdout); - _IO_flockfile (_IO_stdout); + _IO_acquire_lock (_IO_stdout); if ((_IO_stdout->_flags & (_IO_LINKED | _IO_NO_WRITES | _IO_LINE_BUF)) == (_IO_LINKED | _IO_LINE_BUF)) _IO_OVERFLOW (_IO_stdout, EOF); - _IO_funlockfile (_IO_stdout); - _IO_cleanup_region_end (0); + _IO_release_lock (_IO_stdout); #endif } -- cgit v1.1