-
Notifications
You must be signed in to change notification settings - Fork 179
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
perf(api): Do not wait for the event loop to be free when reporting APIv2 commands #9238
Merged
Merged
Changes from 23 commits
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
bbd6bb2
Add `ThreadAsyncQueue`.
SyntaxColoring ba05ee0
Add hint to `ProtocolEngine.stop()` docstring.
SyntaxColoring 8578f21
Delete obsolete `dispatch_threadsafe()`.
SyntaxColoring 00a0df1
Make setup and teardown async in calling code.
SyntaxColoring 97bb7aa
Use a queue to pass actions to the ProtocolEngine.
SyntaxColoring 5cbcae1
Clarify comment in `legacy_wrappers`.
SyntaxColoring 6f6a68a
WIP: Update tests and convert more stuff to async?
SyntaxColoring cc10f9c
More async fixups.
SyntaxColoring bca11bd
Add todo for making `add_plugin` synchronous.
SyntaxColoring 2f3fb6c
Lint.
SyntaxColoring 5c4566e
Add missing await.
SyntaxColoring 7044dea
More test fixups.
SyntaxColoring 9e1f889
Add perf debug logs.
SyntaxColoring 731befe
Add more debug logs.
SyntaxColoring de14507
Revert debug logs.
SyntaxColoring 2a836b8
Use async iteration to simplify consuming from the queue.
SyntaxColoring ebe737c
Minor comment, docstring, and naming revisions.
SyntaxColoring 9c73d5e
Delete `.putting()` in favor of making the object itself a context ma…
SyntaxColoring 5fb3c06
Simplify `get_async_until_closed()`.
SyntaxColoring 7f94b1b
Add missing docstrings.
SyntaxColoring ac85811
Simplify docstrings.
SyntaxColoring bb61b51
Make setup, loading, etc. non-async again.
SyntaxColoring ca8cf1e
Siimplify `LegacyContextPlugin` tests at the cost of duplication.
SyntaxColoring 873eeba
Delete spurious `# todo`.
SyntaxColoring File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I took the easy way out by changing
plugin.teardown()
andplugin_starter.stop()
to beasync
. I haven't totally thought this through yet, but in another PR, I'd like to refactor this to make it easier to follow the lifetime of theLegacyContextPlugin
.Currently, cleaning up the
LegacyContextPlugin
works like this:ProtocolRunner
callsProtocolEngine.finish()
.ProtocolEngine.finish()
callsPluginStarter.stop()
.PluginStarter.stop()
calls.teardown()
on all plugins, which is currently just theLegacyContextPlugin
.But all
LegacyContextPlugin
really cares about is:ProtocolEngine
is still open, so it knows it can still dispatch actions into theProtocolEngine
as it drains itsThreadAsyncQueue
.So in principle, we shouldn't need to involve
ProtocolEngine.finish()
. And I think involvingProtocolEngine.finish()
makes things a little more fragile.