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
bpo-34430 Symmetrical chaining futures in asyncio.future.wrap_future #8807
Conversation
Hello, and thanks for your contribution! I'm a bot set up to make sure that the project can legally accept your contribution by verifying you have signed the PSF contributor agreement (CLA). Unfortunately our records indicate you have not signed the CLA. For legal reasons we need you to sign this before we can look at your contribution. Please follow the steps outlined in the CPython devguide to rectify this issue. You can check yourself to see if the CLA has been received. Thanks again for your contribution, we look forward to reviewing it! |
I'm OK with the change. Could you please rebase your code onto the recent master branch? |
3a7aa44
to
91093a4
Compare
Don't know why appveyor fails with "env_changed" on ubuntu and mac os but passes on Windows. Some hints would be appreciated. |
@whuji please try |
Yes, I already do that. I use the appveryor command line : but, I would like some hints about what could cause the "env_changed" error. |
Ok it uses run_in_executor which uses wrap_future. Looking into this. |
3d81aa8
to
5bfeedb
Compare
It is related to a dangling thread in run_in_executor in test_tasks. |
…cio/concurrent.futures exceptions
5bfeedb
to
b38194f
Compare
The two futures chained by :func:asyncio.future.wrap_future are now
symmetrical.
Before, the behaviour was:
When the wrapped future gets a result, the new future gets the same result,
When the new future is cancelled, the wrapped future is cancelled
now, these new behaviours have been implemented:
3) When the new future gets a result, the wrapped future gets the same result,
4) When the wrapped future is cancelled, the new future is cancelled
so, the new behaviour is:
When either one future is done, the other is done with the same results or exceptions,
When either one future is cancelled, the other is cancelled.
https://bugs.python.org/issue34430