Date: Sun, 3 Mar 1996 13:19:49 -0700 (MST) From: Terry Lambert <terry@lambert.org> To: robert@steffi.dgsys.com (Robert Nicholson) Cc: questions@FreeBSD.ORG Subject: Re: Netscape an not right scroller? Message-ID: <199603032019.NAA04527@phaeton.artisoft.com> In-Reply-To: <199603032317.SAA02433@steffi.dgsys.com> from "Robert Nicholson" at Mar 3, 96 06:17:18 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> Is this the correct behaviour when running Netscape in Linux compat? > > ie. I have to click on the window to have a right scroller appear. > > FREEBSD 2.1 >From other discussions, this seems to be a difference in the atomicity of writes on POSIX domain (UNIX domain) sockets between BSD and Linux. In particular, it looks like Linux does not combine multiple writes by the server so that the client's read gets more than one event at at a time. It seems the rewrite of XtMainAppLoop() in the Xt toolkit (upon which Motif is based) jumps directly into select instead of doing an XPending() and causes events to be lost. Specifically, expose events for the just realized child window for the scrollbar widget. This is, in fact, a bug in the way Netscape's main event loop was programmed. The fix *should* be to not agregate writes on the UNIX domain socket, so that the reader sees each write using a seperate read. Alternately, you could block writes until the buffer is read by the reader, which will serialize them and, again, prevent agregation (this will incidently make Larry McVoy's pipe benchmark go faster while reducing overall pipe throughput by increasing system call overhead for the same amount of pipe data). That is, intentionally break the BSD pipe code, one way or another. Yes, I know this is bogus as hell. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199603032019.NAA04527>