Closed dondelelcaro closed 6 years ago
Hmm, I'm unable to recreate this in my OS X environment
Makefile:
sleep:
sleep 9999
$ biomake
Target sleep not materialized - build required
sleep 9999
Then I ^C
it:
^CForeign predicate shell/2 did not clear exception: error(shell(signal(2),sleep 9999),context(shell/2,_G3771))
While building sleep: Error 1 executing sleep 9999
Bit of an opaque error message but it seems to respect SIGINT.
What environment do you use? Can you recreate this with a small example?
I actually ran across it because I ran biomake
on the Makefile
that biomake distributes.
On other makefiles it seems to work fine, though.
The root-level Makefile launches a bunch of biomake
sub-jobs (each running SWI-Prolog in its own shell). Pressing ctrl-C will probably go to one of the sub-jobs. On my system you get the same behavior if you run GNU make on this Makefile.
It is incredibly difficult to trigger biomake to exit with SIGINT (^C). You basically have to kill it, and all of the subprocesses which biomake generates.
Presumably there is some way to override the interrupt handler of prolog to actually exit sanely.