Add option to use global ZMQ context #820
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We have found that reverting the context in jupyter_client to its global form (from a year ago) doesn't lead to FD leaks. The change away from the global context fixed an issue with multi-threaded kernel client applications, which EG probably doesn't need.
This change adds a configurable option (use_global_zmq_context=True) to enable the use of a global (singleton) context. By default, the current behavior in jupter_client is used.
The reason this is configurable is that jupyter_client may soon release a change that would cause things to break if a global context was in use and we'd need to have a means of using jupyter_client's context directly - which a 'False' value permits.
To enable the use of the global ZMQ context, either of the following options must be taken...
Add to the config file or command line:
--RemoteKernelManager.use_global_zmq_context=True
or set the environment variable...
EG_USE_GLOBAL_ZMQ_CONTEXT=True
Upon use of the first ZMQ port (for each kernel), you should see the following informational message logged: