Interrupts While a calculation is in progress, you can generate the SIGINT signal, and the calculator will catch it. At appropriate points within a calculation, the calculator will check that the signal has been given, and will abort the calculation cleanly. If the calculator is in the middle of a large calculation, it might be a while before the interrupt has an effect. You can generate the SIGINT signal multiple times if necessary, and each time the calculator will abort the calculation at a more risky place within the calculation. Each new interrupt prints a message of the form: [Abort level n] where n ranges from 1 to 3. For n equal to 1, the calculator will abort calculations at the next statement boundary. For n equal to 2, the calculator will abort calculations at the next opcode boundary. For n equal to 3, the calculator will abort calculations at the next lowest level arithmetic operation boundary. If a final interrupt is given when n is 3, the calculator will immediately abort the current calculation and longjmp back to the top level command level. Doing this may result in corrupted data structures and unpredictable future behavior, and so should only be done as a last resort. You are advised to quit the calculator after this has been done. ## Copyright (C) 1999 Landon Curt Noll ## ## Calc is open software; you can redistribute it and/or modify it under ## the terms of the version 2.1 of the GNU Lesser General Public License ## as published by the Free Software Foundation. ## ## Calc is distributed in the hope that it will be useful, but WITHOUT ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General ## Public License for more details. ## ## A copy of version 2.1 of the GNU Lesser General Public License is ## distributed with calc under the filename COPYING-LGPL. You should have ## received a copy with calc; if not, write to Free Software Foundation, Inc. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## ## @(#) $Revision: 29.1 $ ## @(#) $Id: interrupt,v 29.1 1999/12/14 09:15:54 chongo Exp $ ## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/interrupt,v $ ## ## Under source code control: 1991/07/21 04:37:21 ## File existed as early as: 1991 ## ## chongo /\oo/\ http://reality.sgi.com/chongo/ ## Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/