X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/23e20b0053d7317ce3facd3fd38db8c73c2c380a..refs/heads/master:/stdio/FreeBSD/_flock_stub.c diff --git a/stdio/FreeBSD/_flock_stub.c b/stdio/FreeBSD/_flock_stub.c index a556da3..330830f 100644 --- a/stdio/FreeBSD/_flock_stub.c +++ b/stdio/FreeBSD/_flock_stub.c @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD: src/lib/libc/stdio/_flock_stub.c,v 1.16 2008/04/17 22:17:53 jhb Exp $"); #include "namespace.h" +#include #include #include #include @@ -46,7 +47,6 @@ __FBSDID("$FreeBSD: src/lib/libc/stdio/_flock_stub.c,v 1.16 2008/04/17 22:17:53 #include "local.h" - /* * Weak symbols for externally visible functions in this file: */ @@ -58,7 +58,10 @@ __weak_reference(_funlockfile, funlockfile); void _flockfile(FILE *fp) { + // - preserve errno. + int save_errno = errno; _pthread_mutex_lock(&fp->_fl_mutex); + errno = save_errno; } /* @@ -75,14 +78,20 @@ _ftrylockfile(FILE *fp) { int ret = 0; + // - preserve errno. + int save_errno = errno; if (_pthread_mutex_trylock(&fp->_fl_mutex) != 0) ret = -1; - + errno = save_errno; + return (ret); } void _funlockfile(FILE *fp) { + // - preserve errno. + int save_errno = errno; _pthread_mutex_unlock(&fp->_fl_mutex); + errno = save_errno; }