-
-
Notifications
You must be signed in to change notification settings - Fork 371
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
Run control channel in separate thread #585
Conversation
6c25c7e
to
dcfe11d
Compare
4bcbe02
to
bf48c69
Compare
Nice! How do you handle maintaining the Make sure to add a test for this, like:
|
Yes, I think we need to have two parent_header attributes depending on the channel like in xeus-python.
The debugger tests will essentially be of that nature. Since we are working on plugging the debugger (porting code from xeus-python) on top of this PR, we should probably keep this open until the debugger works in practice. |
Updates:
|
285a939
to
ff50c68
Compare
d0a45ab
to
300ac8f
Compare
leaving an event_pipe in a thread that doesn't exit results in ctx.term() hanging
a116e5a
to
208ad24
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work, thank you!
I think this has broken Jupyter_client ci; there are a bunch of errors wrt control channel. |
'Property shell_streams is deprecated in favor of shell_stream', | ||
DeprecationWarning | ||
) | ||
return [shell_stream] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
missing self.
This makes the control channel run in a separate thread from the shell channel, so that control messages can be processed concurrently to shell requests.
this is now the recomended approach in the Jupyter protocol.
this is required for ipykernel to support the Jupyter Debug Protocol in ipykernel: we need to be able to remove and add breakpoints while code is running (or even more importantly, process messages such as "continue", "step into", which are by nature to be called during execution.
Fixes #447