Skip site navigation (1)Skip section navigation (2)
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>