-
-
Notifications
You must be signed in to change notification settings - Fork 411
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement message interrupt mode #804
Conversation
I'm confused about how this is supposed to work. If an |
The message comes in via the control socket which is separate from the normal shell socket that gets the messages for execute, complete and other "normal" requests. Kernels are supposed to prioritise messages on the control socket. |
Oh, I missed that — yes, we handle the control socket in a separate asynchronous task, so that should be fine. In the current Julia release, tasks are scheduled cooperatively, so the execution task may be hogging all of the cycles if it refuses to yield (or do something like I/O that implicitly yields), in which case this still won't work. But in a future Julia release the tasks will be able to run in separate threads (JuliaLang/julia#22631). |
I guess this is still the best we can do for Windows :). It works reliably (on both Windows and Linux) for a simple |
( |
Default to message mode for Windows and keep the previous behaviour for all other platforms.
Is there anything missing? |
Thanks! |
Great to see this fixed! @stevengj, is this worth tagging a release? |
Tagged 1.17.0 |
Fixes #503.
This switches entirely over to message mode. We can either make this configurable (though it must be set for Windows) or remove the signal mode completely.
/EDIT: After adjusting to the PR comments, message mode is only used on Windows.