delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/01/16/06:29:33

Date: Wed, 14 Jan 1998 17:51:13 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: Paul Derbyshire <ao950 AT FreeNet DOT Carleton DOT CA>
Cc: djgpp AT delorie DOT com
Subject: Re: SIGQUIT: What's it good for, anyway?
In-Reply-To: <69i9s5$9t2@freenet-news.carleton.ca>
Message-Id: <Pine.SUN.3.91.980114174115.9833I-100000@is>
Mime-Version: 1.0

On 14 Jan 1998, Paul Derbyshire wrote:

> What is Yet Another Interrupt Key good for anyway? Already there are ^C
> and ^Break with SIGINT; now 2.02 proposes to add ^\ and SIGQUIT.

First, SIGQUIT is actually generated on Unix by Ctrl-\, it's not an 
invention.  But more to the point, here's an example:

Let's say you have a program which talks to the user through an
interpreter, and lets them type procedures, or load them from a file, and
then run them. 

Let's say that you want to let the user break out of a runaway
computation.  So you use SIGINT for that (install a handler which
longjmp's to the top-level command loop which reads input from the
keyboard). 

And now let's say that you come up with this terrific idea to allow them
to interrupt a lengthy, possibly runaway, computation, but also allow to
resume it if they so choose, after typing some commands (to see whether
things are just lengthy or indeed runaway).  You need another signal that
can be generated by a key.  SIGINT is no good, since you cannot easily
tell if it came from Ctrl-C or Ctrl-BREAK.  On Unix you use SIGQUIT.  What
do you do with DJGPP?  Short of installing your own hardware keyboard
handler, you have no options.  Isn't this irritating to know that DJGPP 
already hooks the keyboard interrupt, and is a few opcodes away of what 
you need?

The above is a real example, btw, from a real program.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019