You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current implementation of handling SIGINT signals in Ares from king sets a sentinel value which is polled on every call to Nock 2, Nock 9, and push to mean stack. If the sentinel value is set, the event bails with a non-deterministic error. If the sentinel value is already set when the user attempts to set it again, the serf process exits.
An alternative solution is to mprotect() the entire NockStack on SIGINT. The next access will hit SIGSEGV, from where we can un-protect the NockStack memory and bail with a non-deterministic error. A second call to SIGINT while the region is already mprotect()ed will kill the serf process.
The text was updated successfully, but these errors were encountered:
This would remove the need to check the TERMINATOR static flag on every 2 and 9. Instead, if an error was returned from the hw_exception::catch block in the interpreter, we could just return bail:alrm.
The current implementation of handling
SIGINT
signals in Ares from king sets a sentinel value which is polled on every call to Nock2
, Nock9
, and push to mean stack. If the sentinel value is set, the event bails with a non-deterministic error. If the sentinel value is already set when the user attempts to set it again, the serf process exits.An alternative solution is to
mprotect()
the entireNockStack
onSIGINT
. The next access will hitSIGSEGV
, from where we can un-protect theNockStack
memory and bail with a non-deterministic error. A second call to SIGINT while the region is alreadymprotect()
ed will kill the serf process.The text was updated successfully, but these errors were encountered: