X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Fstdio%2Fflockfile.c;h=a196c1efe0af11663f5e0537a0de1db02c3982ef;hp=0d4c92c24d9de3793f28870b60020b8bd5001d99;hb=dba68bf98fc708cea4c478278c889fc7ad802b00;hpb=7683fceedebd98dda19b1a379b92406b64ce7f92 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); + } }