Skip to content
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

Improve Event Callback Reentrancy #1802

Merged
merged 2 commits into from
Jul 9, 2021
Merged

Improve Event Callback Reentrancy #1802

merged 2 commits into from
Jul 9, 2021

Conversation

nibanks
Copy link
Member

@nibanks nibanks commented Jul 9, 2021

This makes a number of changes in an attempt to improve reentrancy around MsQuic event callbacks to the app:

  1. The connection now tracks if it is in a reentrant API call (e.g. the app is calling a blocking function on the MsQuic thread).
  2. A couple API calls were made async, even if on the callback thread (StreamShutdown and StreamStart(async)).
  3. We now debug assert if we ever try to indicate an event to the app if we are in a non-*Close reentrant API call.

@nibanks nibanks added Area: API Area: Core Related to the shared, core protocol logic labels Jul 9, 2021
@nibanks nibanks requested a review from a team as a code owner July 9, 2021 16:58
src/core/connection.h Outdated Show resolved Hide resolved
@nibanks nibanks merged commit 8c4afc2 into main Jul 9, 2021
@nibanks nibanks deleted the nibanks/track-reentrancy branch July 9, 2021 21:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: API Area: Core Related to the shared, core protocol logic
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants