Tue May 7 23:43:07 1996 Ulrich Drepper <drepper@cygnus.com>
authorroland <roland>
Thu, 9 May 1996 00:08:58 +0000 (00:08 +0000)
committerroland <roland>
Thu, 9 May 1996 00:08:58 +0000 (00:08 +0000)
* libio/clearerr.c, libio/feof.c, libio/ferror.c, libio/fgetc.c,
libio/fileno.c, libio/fputc.c, libio/freopen.c, libio/fseek.c,
libio/genops.c, libio/getc.c, libio/getchar.c, libio/iofclose.c,
libio/iofflush.c, libio/iofgetpos.c, libio/iofgets.c,
libio/iofputs.c, libio/iofread.c, libio/iofsetpos.c,
libio/ioftell.c, libio/iofwrite.c, libio/iogetdelim.c,
libio/iogets.c, libio/ioputs.c, libio/iosetbuffer.c,
libio/iosetvbuf.c, libio/ioungetc.c, libio/iovsprintf.c,
libio/libio.h, libio/putc.c, libio/putchar.c, libio/rewind.c,
libio/stdio.h, stdio-common/printf_fp.c, stdio-common/vfprintf.c,
stdio-common/vfscanf.c: Prepare for reentrent libio.

libio/feof.c
libio/fgetc.c

index bd30c17..9fb0008 100644 (file)
@@ -1,5 +1,4 @@
-/* 
-Copyright (C) 1993 Free Software Foundation
+/* Copyright (C) 1993, 1996 Free Software Foundation, Inc.
 
 This file is part of the GNU IO Library.  This library is free
 software; you can redistribute it and/or modify it under the
@@ -26,9 +25,21 @@ the executable file might be covered by the GNU General Public License. */
 #include "stdio.h"
 
 int
-feof(fp)
+feof (fp)
      _IO_FILE* fp;
 {
-  CHECK_FILE(fp, EOF);
-  return _IO_feof(fp);
+  int result;
+  CHECK_FILE (fp, EOF);
+  _IO_flockfile (fp);
+  result = _IO_feof_unlocked (fp);
+  _IO_funlockfile (fp);
+  return result;
 }
+
+#ifdef _IO_MTSAFE_IO
+/* The feof implementation for libio does not require locking because
+   it only accesses once a single variable and this is already atomic
+   (at least at thread level).  */
+
+weak_alias (feof, feof_locked)
+#endif
index 19c0a58..2aaea05 100644 (file)
@@ -29,6 +29,10 @@ int
 fgetc (fp)
      FILE *fp;
 {
+  int result;
   CHECK_FILE (fp, EOF);
-  return _IO_getc (fp);
+  flockfile (fp);
+  result = _IO_getc_unlocked (fp);
+  funlockfile (fp);
+  return result;
 }