Title: bpo-33694: asyncio: Fix race in Proactor's Transport.set_protocol() by 1st1 · Pull Request #7486 · python/cpython · GitHub
Open Graph Title: bpo-33694: asyncio: Fix race in Proactor's Transport.set_protocol() by 1st1 · Pull Request #7486 · python/cpython
X Title: bpo-33694: asyncio: Fix race in Proactor's Transport.set_protocol() by 1st1 · Pull Request #7486 · python/cpython
Description: Refactor Proactor's data receiving code path. The idea is to always use recv_into() and to emulate the old Protocol.data_received() path. This way there is no read cancellation race or data loss in set_protocol() and there's no performance degradation for both Protocol and BufferedProtocol. This PR removes some outdated and now irrelevant proactor mock tests (most of the removed mocked tests have an alternative working test for BufferedProtocol). https://bugs.python.org/issue33694
Open Graph Description: Refactor Proactor's data receiving code path. The idea is to always use recv_into() and to emulate the old Protocol.data_received() path. This way there is no read cancellation race or data lo...
X Description: Refactor Proactor's data receiving code path. The idea is to always use recv_into() and to emulate the old Protocol.data_received() path. This way there is no read cancellation race or dat...
Opengraph URL: https://github.com/python/cpython/pull/7486
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:fe0faf6f-81c7-692e-b266-05b1c3fb5455 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | C7B8:6464A:2C98CEC:3FB2846:6A5909CF |
| html-safe-nonce | eab44e1465ed7ce83db0309ed02c020e130790d2cc97c290f18b462713165560 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDN0I4OjY0NjRBOjJDOThDRUM6M0ZCMjg0Njo2QTU5MDlDRiIsInZpc2l0b3JfaWQiOiI4OTkzNTk1OTkxMjkyMTg1MDM5IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | fc2181db93806a12e2025ed4d95c013631081959cdcdaf0b3cf6659737fd9c5d |
| hovercard-subject-tag | pull_request:193379741 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/python/cpython/pull/7486/files |
| twitter:image | https://avatars.githubusercontent.com/u/239003?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/239003?s=400&v=4 |
| og:image:alt | Refactor Proactor's data receiving code path. The idea is to always use recv_into() and to emulate the old Protocol.data_received() path. This way there is no read cancellation race or data lo... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 4eb8ea312922ccce63e833964f9606d971cffb2d5b6c10a62c4a7dcc48d826e2 |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 886a6c6fbce3d3caad5b3b995ef09ff6ca23f10e |
| ui-target | canary-2 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width