Date: Tue, 13 Aug 1996 23:13:48 +0200 (MET DST) From: J Wunsch <j@uriah.heep.sax.de> To: freebsd-current@FreeBSD.org (FreeBSD-current users) Cc: bde@zeta.org.au (Bruce Evans) Subject: Re: locking up Message-ID: <199608132113.XAA06086@uriah.heep.sax.de> In-Reply-To: <199608131955.FAA20954@godzilla.zeta.org.au> from Bruce Evans at "Aug 14, 96 05:55:43 am"
next in thread | previous in thread | raw e-mail | index | archive | help
As Bruce Evans wrote: > >It only returns early if `noblock' is specified. (It returns NULL in > >that case.) Otherwise, it loops again instead. > > `noblock' is always set in the calls from pcrint(), so this guarantees Ah, right. > scgetc() also seems to return early in all cases when XSERVER != 0. Actually not. It returns earlier than usual in case XSERVER != 0 and pcvt_kbd_raw == TRUE, meaning that the Xserver is currently active and wants to see the unprocessed scan codes. However, it doesn't return `early' (as opposed to looping around), the ``goto loop'' is only much more obfuscated then. > I think there is a problem iff PCVT_KBD_FIFO != 0. Unlikely, since this is the most common and thus most tested case (along with XSERVER != 0). My latest change has significantly simplified the determination expression for whether there's actually a character pending. I'm surprised that the long, ugly and obfuscated condition could be replaced by something that simple. ;) By now, i cannot see any failure out of this. -- cheers, J"org joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199608132113.XAA06086>