Author: adrian
Date: Tue Oct 4 14:26:45 2011
New Revision: 225980
URL: http://svn.freebsd.org/changeset/base/225980
Log:
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
Modified:
head/usr.bin/csup/fixups.c
Modified: head/usr.bin/csup/fixups.c
==============================================================================
--- head/usr.bin/csup/fixups.c Tue Oct 4 14:25:10 2011 (r225979)
+++ head/usr.bin/csup/fixups.c Tue Oct 4 14:26:45 2011 (r225980)
@@ -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);
}
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"