X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fstdio%2Fflockfile.c;h=a196c1efe0af11663f5e0537a0de1db02c3982ef;hb=a749ba3adc2f3b4abfc68b21d4c3741b20c8f657;hp=440a36a9aecb9bfb1a08907d2c91ab9513da19e5;hpb=4d9cc0b399b1d6a146cb45e64c74b7ee562de7a6;p=musl diff --git a/src/stdio/flockfile.c b/src/stdio/flockfile.c index 440a36a9..a196c1ef 100644 --- a/src/stdio/flockfile.c +++ b/src/stdio/flockfile.c @@ -3,9 +3,8 @@ void flockfile(FILE *f) { - if (!libc.lockfile) { - pthread_self(); - libc.lockfile = __lockfile; + while (ftrylockfile(f)) { + int owner = f->lock; + if (owner) __wait(&f->lock, &f->waiters, owner, 1); } - __lockfile(f); }