Skip to content

[EventEngine] Windows endpoints keep their EventEngines alive#32560

Merged
drfloob merged 3 commits intogrpc:masterfrom
drfloob:fix/win-ee-endpoint-keep-ee-alive
Mar 8, 2023
Merged

[EventEngine] Windows endpoints keep their EventEngines alive#32560
drfloob merged 3 commits intogrpc:masterfrom
drfloob:fix/win-ee-endpoint-keep-ee-alive

Conversation

@drfloob
Copy link
Copy Markdown
Member

@drfloob drfloob commented Mar 7, 2023

Discovered via bazel test --test_env=GRPC_EXPERIMENTS=event_engine_client //test/core/iomgr:endpoint_pair_test. CI experiments can be enabled generally on Windows once a few fixes and improvements are completed.

@drfloob drfloob merged commit 1548038 into grpc:master Mar 8, 2023
@copybara-service copybara-service bot added the imported Specifies if the PR has been imported to the internal repository label Mar 8, 2023
drfloob added a commit that referenced this pull request Mar 14, 2023
…s WSARecv operations (#32563)

Built on #32560

When calling EventEngine::Read, if a synchronous WSARecv call completes
successfully and 1) the read buffer is not full, and 2) the stream
remains open, then the endpoint will now chain execution of more
synchronous WSARecvs. The chain is broken and the on_read callback is
called when either there are errors, the next call would block, the
buffer is full, or the stream is closed.

Something like this is helpful to prevent excessive read callback
execution under a flood of tiny payloads, presuming messages are not
being combined as one would usually expect (see
`//test/core/iomgr:endpoint_pair_test`, and Nagle's algorithm).
XuanWang-Amos pushed a commit to XuanWang-Amos/grpc that referenced this pull request May 1, 2023
…2560)

Discovered via `bazel test
--test_env=GRPC_EXPERIMENTS=event_engine_client
//test/core/iomgr:endpoint_pair_test`. CI experiments can be enabled
generally on Windows once a few fixes and improvements are completed.
XuanWang-Amos pushed a commit to XuanWang-Amos/grpc that referenced this pull request May 1, 2023
…s WSARecv operations (grpc#32563)

Built on grpc#32560

When calling EventEngine::Read, if a synchronous WSARecv call completes
successfully and 1) the read buffer is not full, and 2) the stream
remains open, then the endpoint will now chain execution of more
synchronous WSARecvs. The chain is broken and the on_read callback is
called when either there are errors, the next call would block, the
buffer is full, or the stream is closed.

Something like this is helpful to prevent excessive read callback
execution under a flood of tiny payloads, presuming messages are not
being combined as one would usually expect (see
`//test/core/iomgr:endpoint_pair_test`, and Nagle's algorithm).
wanlin31 pushed a commit that referenced this pull request May 18, 2023
Discovered via `bazel test
--test_env=GRPC_EXPERIMENTS=event_engine_client
//test/core/iomgr:endpoint_pair_test`. CI experiments can be enabled
generally on Windows once a few fixes and improvements are completed.
wanlin31 pushed a commit that referenced this pull request May 18, 2023
…s WSARecv operations (#32563)

Built on #32560

When calling EventEngine::Read, if a synchronous WSARecv call completes
successfully and 1) the read buffer is not full, and 2) the stream
remains open, then the endpoint will now chain execution of more
synchronous WSARecvs. The chain is broken and the on_read callback is
called when either there are errors, the next call would block, the
buffer is full, or the stream is closed.

Something like this is helpful to prevent excessive read callback
execution under a flood of tiny payloads, presuming messages are not
being combined as one would usually expect (see
`//test/core/iomgr:endpoint_pair_test`, and Nagle's algorithm).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants