There's a deadly embrace between watchdogs and cngetc.  While cngetc is looping 
at splserial, callouts are blocked, let alone letting user processes run.

So if you are stuck at the ddb prompt, eventually the watchdog will fire 
because you didn't type fast enough.

I've added a new class of hook to do this, critpoll (critical poll).

I want to change the current semantics of cn_getc from spin forever to poll for 
a character and return -1 if no character is ready or >= 0 for valid input.  
The definition allows serial drivers to change as needed.

The diff to dev/cons.c is at http://www.netbsd.org/~matt/cons-diff.txt
The diff to dev/ic/com.c is at http://www.netbsd.org/~matt/com-diff.txt

I've been using this for 6 months with no problems.

Reply via email to