Date: Thu, 2 Jan 2003 12:49:13 -0800 From: Alfred Perlstein <bright@mu.org> To: Poul-Henning Kamp <phk@FreeBSD.org> Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/fs/fifofs fifo_vnops.c Message-ID: <20030102204913.GM26140@elvis.mu.org> In-Reply-To: <200301021951.h02Jp8Ys002016@repoman.freebsd.org> References: <200301021951.h02Jp8Ys002016@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
* Poul-Henning Kamp <phk@FreeBSD.org> [030102 11:51] wrote:
> phk 2003/01/02 11:51:08 PST
>
> Modified files: (Branch: RELENG_5_0)
> sys/fs/fifofs fifo_vnops.c
> Log:
> MFC: Put a one-second timeout (And a XXX: comment) on a tsleep which
> under certain not understood circumstances hangs sendmail during
> boot.
216 if (ap->a_mode & FWRITE) {
217 fip->fi_writers++;
218 if (fip->fi_writers == 1) {
219 fip->fi_readsock->so_state &= ~SS_CANTRCVMORE;
220 if (fip->fi_readers > 0) {
221 wakeup((caddr_t)&fip->fi_readers);
222 sorwakeup(fip->fi_writesock);
223 }
224 }
225 }
This this code is confusing because we have a producer consumer
relationship between readers and writers. I think that the problem
is that in this section of code the wakeup should be on fi_writers.
Please test that and let me know if it fixes the problem.
--
-Alfred Perlstein [alfred@freebsd.org]
'Instead of asking why a piece of software is using "1970s technology,"
start asking why software is ignoring 30 years of accumulated wisdom.'
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030102204913.GM26140>
