author | Rich Felker <dalias@aerifal.cx> | 2011年07月30日 08:02:14 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011年07月30日 08:02:14 -0400 |
commit | dba68bf98fc708cea4c478278c889fc7ad802b00 (patch) | |
tree | b90a55aaa51c72475cdb69efca7b9ddd37e50b2e /src/stdio/flockfile.c | |
parent | 7683fceedebd98dda19b1a379b92406b64ce7f92 (diff) | |
download | musl-dba68bf98fc708cea4c478278c889fc7ad802b00.tar.gz |
-rw-r--r-- | src/stdio/flockfile.c | 6 |
diff --git a/src/stdio/flockfile.c b/src/stdio/flockfile.c index 0d4c92c2..a196c1ef 100644 --- a/src/stdio/flockfile.c +++ b/src/stdio/flockfile.c @@ -3,6 +3,8 @@ void flockfile(FILE *f) { - if (!libc.threaded) pthread_self(); - __lockfile(f); + while (ftrylockfile(f)) { + int owner = f->lock; + if (owner) __wait(&f->lock, &f->waiters, owner, 1); + } } |