Handle the situation where fixups_close() has been called but more fixups

are still available on the queue.

Without this, the fixups producer/consumer pipeline will artifically terminate
before all of the fixups have been processed, leading to incomplete updates
and generally quite unhappy users.

Submitted by:	mux
This commit is contained in:
Adrian Chadd 2011-10-04 14:26:45 +00:00
parent 787ac3452c
commit c6ae748382
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=225980

View File

@ -141,7 +141,7 @@ fixups_get(struct fixups *f)
fixups_lock(f);
while (f->size == 0 && !f->closed)
pthread_cond_wait(&f->cond, &f->lock);
if (f->closed) {
if (f->closed && f->size == 0) {
fixups_unlock(f);
return (NULL);
}