forked from metaeducation/ren-c
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Resolve SIGINT-triggered console assertion
In the R3 console executable, SIGINT (Ctrl-C) can happen at any moment, and sets a flag that Rebol can read at a later time when it is ready for it. Then when it is "ready for it", it uses longjmp to hop up to a handler to take control from whatever was going on. Problem is, in the API it considered itself "ready for it" during printing out of values through the value-printing API. The host main was not prepared for an error to occur outside of evaluation, and if after a Ctrl-C happened it got to any printing before enough evaluation steps signaled to process the signal, it would assert. This adds a containing trap--even outside of any evaluation--which should resolve this assert for now (though it points to the idea that the API should have a solid story for interactions with interrupts).
- Loading branch information
1 parent
95abcd6
commit ed0ea34
Showing
3 changed files
with
52 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters