-
Notifications
You must be signed in to change notification settings - Fork 3.6k
[pigeon] Update task queue handling #8627
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
[pigeon] Update task queue handling #8627
Conversation
tarrinneal
left a comment
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.
Looks good. I know we discussed the breaking change comment before, but I wanted to check again. A couple nits
| @@ -1,3 +1,9 @@ | |||
| ## 24.2.0 | |||
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.
This could be a breaking change couldn't it? I know that the old behavior was essentially just "wrong", but this could "break" what used to be unintentionally correct
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.
The old behavior had undefined ordering, and one of the possible orderings was the one that this will guarantee. So any code that reliably behaved correctly still will, because this is one of the orderings it must have handled.
packages/pigeon/platform_tests/shared_test_plugin_code/lib/integration_tests.dart
Show resolved
Hide resolved
flutter/packages@625023a...8542af3 2025-02-15 stuartmorgan@google.com [various] Enable `permissive-` for Windows plugin examples (flutter/packages#8636) 2025-02-15 stuartmorgan@google.com [pigeon] Update task queue handling (flutter/packages#8627) 2025-02-14 goderbauer@google.com Update CODEOWNERS (flutter/packages#8628) 2025-02-14 32538273+ValentinVignal@users.noreply.github.com [flutter_adaptive_scaffold] Fix some memory leaks (flutter/packages#8546) 2025-02-14 mchudy@users.noreply.github.com [camera] Fix crash when setting activeFormat on FLTCaptureDevice (flutter/packages#8630) 2025-02-13 mchudy@users.noreply.github.com [camera] Remove remaining OCMock usage in tests (flutter/packages#8624) 2025-02-13 10687576+bparrishMines@users.noreply.github.com [webview_flutter_wkwebview] Change callback methods with a non-null return type to non-null (flutter/packages#8564) 2025-02-12 737941+loic-sharma@users.noreply.github.com [google_sign_in_ios] Adds Swift Package Manager support (flutter/packages#7356) 2025-02-12 pawel.jakubowski@leancode.pl [camera_avfoundation] Migrate tests to Swift - part 1 (flutter/packages#8603) 2025-02-12 43054281+camsim99@users.noreply.github.com [video_player] Re-enables `asset videos live stream duration != 0` test for Android (flutter/packages#8610) 2025-02-12 32538273+ValentinVignal@users.noreply.github.com [go_router_builder] Add support for `TypedStatefulShellBranch`'s `preload` (flutter/packages#8587) 2025-02-12 magder@google.com [local_auth_darwin] Fix test name for clarity (flutter/packages#8499) 2025-02-11 ditman@gmail.com [ci] Manually roll master, set -Xmx4G (flutter/packages#8586) 2025-02-11 49699333+dependabot[bot]@users.noreply.github.com [dependabot]: Bump the gradle-plugin group across 4 directories with 1 update (flutter/packages#8551) 2025-02-10 10687576+bparrishMines@users.noreply.github.com [pigeon] Add errors for ProxyAPI callback methods and null instances when reading in a ProxyApiBaseCodec (flutter/packages#8567) 2025-02-10 98884136+berhili098@users.noreply.github.com [shared_preferences]Fix : SetState returning future (flutter/packages#8398) 2025-02-10 stuartmorgan@google.com [various] Add deprecation notices to READMEs (flutter/packages#8598) 2025-02-10 mchudy@users.noreply.github.com [camera] Remove OCMock from CameraSettingsTests, CameraMethodChannelTests and CameraSessionPresetsTests (flutter/packages#8592) 2025-02-10 mchudy@users.noreply.github.com [camera] Remove OCMock from FLTCamPhotoCaptureTests, FLTSavePhotoDelegateTests and StreamingTests (flutter/packages#8590) 2025-02-07 32538273+ValentinVignal@users.noreply.github.com [go_router] Add `preload` parameter to `StatefulShellBranchData.$branch` (flutter/packages#8545) 2025-02-07 pawel.jakubowski@leancode.pl [video_player_avfoundation] iOS platform view support (flutter/packages#8237) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Updates the task queue implementation across all supporting generators to use one task queue for an entire host API, rather than one per method, so that multiple methods using task queues will have ordering guarantees amongst them. Also changes the Obj-C implementation to no-op on macOS instead of failing to compile, so that shared iOS/macOS code can use task queues on iOS without breaking macOS. (We could deliberately add a compile error with a clear error message in a macOS ifdef if we get reports of user confusion in the future, but my expectation is that no-op is the best option for most people.) Related changes: - Adds integration testing that task queues work, instead of just that the generator step succeeds. - For platforms that don't support task queues, they are still included in the integration test to ensure that - I removed the now-vestigial background_platform_channels.dart. - Adds Swift support, since it was easier to add than to skip it in the tests. Fixes flutter/flutter#162624 Fixes flutter/flutter#111512
Updates the task queue implementation across all supporting generators to use one task queue for an entire host API, rather than one per method, so that multiple methods using task queues will have ordering guarantees amongst them. Also changes the Obj-C implementation to no-op on macOS instead of failing to compile, so that shared iOS/macOS code can use task queues on iOS without breaking macOS. (We could deliberately add a compile error with a clear error message in a macOS ifdef if we get reports of user confusion in the future, but my expectation is that no-op is the best option for most people.) Related changes: - Adds integration testing that task queues work, instead of just that the generator step succeeds. - For platforms that don't support task queues, they are still included in the integration test to ensure that - I removed the now-vestigial background_platform_channels.dart. - Adds Swift support, since it was easier to add than to skip it in the tests. Fixes flutter/flutter#162624 Fixes flutter/flutter#111512
Updates the task queue implementation across all supporting generators to use one task queue for an entire host API, rather than one per method, so that multiple methods using task queues will have ordering guarantees amongst them. Also changes the Obj-C implementation to no-op on macOS instead of failing to compile, so that shared iOS/macOS code can use task queues on iOS without breaking macOS. (We could deliberately add a compile error with a clear error message in a macOS ifdef if we get reports of user confusion in the future, but my expectation is that no-op is the best option for most people.)
Related changes:
Fixes flutter/flutter#162624
Fixes flutter/flutter#111512
Pre-launch Checklist
dart format.)[shared_preferences]pubspec.yamlwith an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.mdto add a description of the change, following repository CHANGELOG style, or this PR is exempt from CHANGELOG changes.///).