From ddf61b679abc0c1871e9103185f4b23ebe8d8efe Mon Sep 17 00:00:00 2001 From: dj Date: Tue, 26 Apr 2005 01:02:01 +0000 Subject: [PATCH] merge from gcc --- libiberty/ChangeLog | 6 ++++++ libiberty/fopen_unlocked.c | 18 +++++++++++++++++- libiberty/functions.texi | 29 +++++++++++++++++++---------- 3 files changed, 42 insertions(+), 11 deletions(-) diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index a92bcdc76d..9956cf5dd2 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,9 @@ +2005-04-25 Kaveh R. Ghazi + + * fopen_unlocked.c (unlock_std_streams): New. + + * functions.texi: Regenerate. + 2005-04-16 Kaveh R. Ghazi * fopen_unlocked.c (unlock_stream): New. diff --git a/libiberty/fopen_unlocked.c b/libiberty/fopen_unlocked.c index 8f9f300d10..84e3be54b2 100644 --- a/libiberty/fopen_unlocked.c +++ b/libiberty/fopen_unlocked.c @@ -28,6 +28,14 @@ pointer unchanged. If the @var{stream} is @code{NULL} do nothing. @end deftypefn +@deftypefn Extension void unlock_std_streams (void) + +If the OS supports it, ensure that the standard I/O streams, +@code{stdin}, @code{stdout} and @code{stderr} are setup to avoid any +multi-threaded locking. Otherwise do nothing. + +@end deftypefn + @deftypefn Extension FILE * fopen_unlocked (const char *@var{path}, const char * @var{mode}) Opens and returns a @code{FILE} pointer via @code{fopen}. If the @@ -80,11 +88,19 @@ unlock_1 (FILE *const fp ATTRIBUTE_UNUSED) } void -unlock_stream(FILE *fp) +unlock_stream (FILE *fp) { unlock_1 (fp); } +void +unlock_std_streams (void) +{ + unlock_1 (stdin); + unlock_1 (stdout); + unlock_1 (stderr); +} + FILE * fopen_unlocked (const char *path, const char *mode) { diff --git a/libiberty/functions.texi b/libiberty/functions.texi index e55d2d50e7..ac97726805 100644 --- a/libiberty/functions.texi +++ b/libiberty/functions.texi @@ -176,7 +176,7 @@ the possibility of a GCC built-in function. @end deftypefn -@c asprintf.c:29 +@c asprintf.c:32 @deftypefn Extension int asprintf (char **@var{resptr}, const char *@var{format}, ...) Like @code{sprintf}, but instead of passing a pointer to a buffer, you @@ -237,7 +237,7 @@ is respectively less than, matching, or greater than the array member. @end deftypefn -@c argv.c:121 +@c argv.c:124 @deftypefn Extension char** buildargv (char *@var{sp}) Given a pointer to a string, parse the string extracting fields @@ -318,7 +318,7 @@ pointer encountered. Pointers to empty strings are ignored. @end deftypefn -@c argv.c:49 +@c argv.c:52 @deftypefn Extension char** dupargv (char **@var{vector}) Duplicate an argument vector. Simply scans through @var{vector}, @@ -362,7 +362,7 @@ and inode numbers. @end deftypefn -@c fopen_unlocked.c:40 +@c fopen_unlocked.c:48 @deftypefn Extension FILE * fdopen_unlocked (int @var{fildes}, const char * @var{mode}) Opens and returns a @code{FILE} pointer via @code{fdopen}. If the @@ -431,7 +431,7 @@ Ignores case when performing the comparison. @end deftypefn -@c fopen_unlocked.c:31 +@c fopen_unlocked.c:39 @deftypefn Extension FILE * fopen_unlocked (const char *@var{path}, const char * @var{mode}) Opens and returns a @code{FILE} pointer via @code{fopen}. If the @@ -441,7 +441,7 @@ unchanged. @end deftypefn -@c argv.c:94 +@c argv.c:97 @deftypefn Extension void freeargv (char **@var{vector}) Free an argument vector that was built using @code{buildargv}. Simply @@ -451,7 +451,7 @@ itself. @end deftypefn -@c fopen_unlocked.c:49 +@c fopen_unlocked.c:57 @deftypefn Extension FILE * freopen_unlocked (const char * @var{path}, const char * @var{mode}, FILE * @var{stream}) Opens and returns a @code{FILE} pointer via @code{freopen}. If the @@ -510,7 +510,7 @@ that @var{tz} be NULL. Returns 0 on success, -1 on failure. @end deftypefn -@c hex.c:30 +@c hex.c:33 @deftypefn Extension void hex_init (void) Initializes the array mapping the current character set to @@ -520,7 +520,7 @@ default ASCII-based table will normally be used on ASCII systems. @end deftypefn -@c hex.c:39 +@c hex.c:42 @deftypefn Extension int hex_p (int @var{c}) Evaluates to non-zero if the given character is a valid hex character, @@ -529,7 +529,7 @@ or zero if it is not. Note that the value you pass will be cast to @end deftypefn -@c hex.c:47 +@c hex.c:50 @deftypefn Extension {unsigned int} hex_value (int @var{c}) Returns the numeric equivalent of the given character when interpreted @@ -1201,6 +1201,15 @@ was made to unlink the file because it is special. @end deftypefn +@c fopen_unlocked.c:31 +@deftypefn Extension void unlock_std_streams (void) + +If the OS supports it, ensure that the standard I/O streams, +@code{stdin}, @code{stdout} and @code{stderr} are setup to avoid any +multi-threaded locking. Otherwise do nothing. + +@end deftypefn + @c fopen_unlocked.c:23 @deftypefn Extension void unlock_stream (FILE * @var{stream}) -- 2.11.0