os: implement fork#2750
Conversation
c1de780 to
b94cba7
Compare
July 26, 2021 12:41
youknowone
left a comment
There was a problem hiding this comment.
I personally support hard compatibility with CPython.
At least, leaving comments about CPython implementations for each places will be helpful for future workers.
Sorry, something went wrong.
|
what's happend to the ubuntu tests? |
Sorry, something went wrong.
|
Whatever it is it isn't reproducible, as threads tend to be. Locally it once started spinning on |
Sorry, something went wrong.
|
I’ll take another look. The problem is that fork enables functions like os.spawn which in turn enable a whole bunch of new tests. |
Sorry, something went wrong.
|
thanks! This is superseded by #4877 if I'm not mistaken. Feel free to re-open if I'm mistaken. |
Sorry, something went wrong.
This seems to work and tests pass (
test_posix:test_register_at_fork).I took a look at CPython's implementation and it seems they're doing more things before/after fork, namely acquiring the import lock, and re-initiating the interpreter in the child process (see here - https://github.com/python/cpython/blob/main/Modules/posixmodule.c#L593). Do we want to do the same thing here?