From: David S. W. <dw...@us...> - 2001-11-02 22:21:05
|
Update of /cvsroot/xsb/XSB/syslib In directory usw-pr-cvs1:/tmp/cvs-serv25205 Modified Files: xcallxsb.H xcallxsb.O xcallxsb.P Log Message: Slightly modified how keyboard interrupts are handled. In subp.c it seemed that the embedded call to signal got lost, so XSB could only intercept one keyboard interrupt and thereafter would abort. xcallxsb was changed to treat keyboard interrupt and treat it as an abort. Abort is returned to the c-caller simply as failure. Index: xcallxsb.H =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/xcallxsb.H,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- xcallxsb.H 1999/11/20 06:52:08 1.5 +++ xcallxsb.H 2001/11/02 22:20:58 1.6 @@ -34,6 +34,7 @@ :- import call_c/1, call_expose/1, goal_cut_trans/3, repeat/0, (=..)/2 from standard. +:- import set_inthandler/2 from loader. :- import file_write/2, file_nl/1 from xsb_writ. :- import file_read_foe/3, file_read/3 from xsb_read. :- import excess_vars/4 from setof. Index: xcallxsb.O =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/xcallxsb.O,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 Binary files /tmp/cvsobK9qd and /tmp/cvsYXUkxg differ Index: xcallxsb.P =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/xcallxsb.P,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- xcallxsb.P 2000/06/08 06:50:06 1.8 +++ xcallxsb.P 2001/11/02 22:20:58 1.9 @@ -25,14 +25,15 @@ :- compiler_options([sysmod,xpp_on]). #include "standard.h" +#include "sig_xsb.h" - :- import conget/2, conset/2 from gensym. :- c_callloop. c_callloop :- + set_inthandler('_$keyboard_int'(_), MYSIG_KEYB), repeat, '_$savecp'(Cp), % to set abort cut point conset('_$abort_cutpoint', Cp), @@ -97,3 +98,6 @@ (call((Goal,!)) -> true ; true), eval_cmdline_goal(FileDes). eval_cmdline_goal(FileDes) :- file_close(FileDes). + +'_$keyboard_int'(_Call) :- + abort. |