-
Notifications
You must be signed in to change notification settings - Fork 3
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
Separate process management out of pool #70
Conversation
Let me explain what the intent here is - yes, the purpose is so that we can later swap out the
Both of these are very viable with this class structure. I think we should add them, and test them. One, because we would change the default and that solves an urgent problem. But even after that, it's like driving around with a spare tire in your trunk. My memory is that celery had major issues that happened once it started playing with novel forking methodologies. Once this stabilizes, we should keep around some options, just in case. |
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.
LGTM, have you done some manual testing?
99391a7
to
d424e16
Compare
I added some simple tests. I don't see a whole lot of value (almost trivial), but I like how this is informative, how it steps-through the layers of code construction. |
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.
LGTM. So ProcessProxy
represents an individual process and ProcessManager
is the interface for interacting with proesses (creating, reading results)
This is pre-work before introducing use of "forkserver".
As we introduce that new method of forking, my plan is to preserve the current logic. Instead of replacing, this will be a configurable class.
For now, this enabling change attempts to quarantine all interactions with the python
multiprocessing
library into a newprocess
module. This leavespool
as a module highly specialized on asyncio task management and balancing of capacity.