diff options
Diffstat (limited to 'lib/libc/stdio/fputs.c')
| -rw-r--r-- | lib/libc/stdio/fputs.c | 15 | 
1 files changed, 14 insertions, 1 deletions
| diff --git a/lib/libc/stdio/fputs.c b/lib/libc/stdio/fputs.c index 9f9be2e2feee..92fcc303a690 100644 --- a/lib/libc/stdio/fputs.c +++ b/lib/libc/stdio/fputs.c @@ -41,14 +41,20 @@ static char sccsid[] = "@(#)fputs.c	8.1 (Berkeley) 6/4/93";  #include <stdio.h>  #include <string.h>  #include "fvwrite.h" +#ifdef _THREAD_SAFE +#include <pthread.h> +#include "pthread_private.h" +#endif  /*   * Write the given string to the given file.   */ +int  fputs(s, fp)  	const char *s;  	FILE *fp;  { +	int retval;  	struct __suio uio;  	struct __siov iov; @@ -56,5 +62,12 @@ fputs(s, fp)  	iov.iov_len = uio.uio_resid = strlen(s);  	uio.uio_iov = &iov;  	uio.uio_iovcnt = 1; -	return (__sfvwrite(fp, &uio)); +#ifdef _THREAD_SAFE +	_thread_flockfile(fp,__FILE__,__LINE__); +#endif +	retval = __sfvwrite(fp, &uio); +#ifdef _THREAD_SAFE +	_thread_funlockfile(fp); +#endif +	return (retval);  } | 
