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

Fix continuous event polling in the GLFW event loop #12320

Merged
merged 1 commit into from Sep 17, 2019

Conversation

jason-simmons
Copy link
Member

  • Do not pass a milliseconds::max() timeout that will overflow when converted
    to nanoseconds
  • Avoid holding the task_queue_mutex_ while calling glfwWaitEventsTimeout
  • Use a signed type to hold the difference between a task's timestamp and
    the current engine time

Fixes flutter/flutter#40281

Copy link
Contributor

@stuartmorgan stuartmorgan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with nit

@@ -740,7 +740,7 @@ bool FlutterDesktopRunWindowEventLoopWithTimeout(
FlutterDesktopWindowControllerRef controller,
uint32_t timeout_milliseconds) {
auto wait_duration = timeout_milliseconds == 0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's stop using auto here since the right hand size is no longer consistent; I don't actually know offhand which way the conversion will go, so I no longer know the exact type. We should explicitly use nanoseconds.

* Do not pass a milliseconds::max() timeout that will overflow when converted
  to nanoseconds
* Avoid holding the task_queue_mutex_ while calling glfwWaitEventsTimeout
* Use a signed type to hold the difference between a task's timestamp and
  the current engine time

Fixes flutter/flutter#40281
@jason-simmons jason-simmons merged commit b4d7655 into flutter:master Sep 17, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Sep 17, 2019
engine-flutter-autoroll added a commit to flutter/flutter that referenced this pull request Sep 18, 2019
git@github.com:flutter/engine.git/compare/63873d9f421f...d1692d4

git log 63873d9..d1692d4 --no-merges --oneline
2019-09-17 hterkelsen@users.noreply.github.com Update canvaskit backend (flutter/engine#12318)
2019-09-17 mouad.debbar@gmail.com README for the felt tool (flutter/engine#12323)
2019-09-17 jason-simmons@users.noreply.github.com Fix continuous event polling in the GLFW event loop (flutter/engine#12320)
2019-09-17 15365765+rafern@users.noreply.github.com Tests for #11283 (flutter/engine#12322)
2019-09-17 ditman@gmail.com Improve check to render (or not) a DRRect when inner falls outside of outer on RecordingCanvas (flutter/engine#12229)
2019-09-17 bkonyi@google.com Roll src/third_party/dart dd1969a43a..7505b3a5f0 (39 commits)
2019-09-17 30870216+gaaclarke@users.noreply.github.com Channel buffers (flutter/engine#12167)
2019-09-17 xster@google.com Make iOS FlutterViewController stop sending inactive/pause on app lifecycle events when not visible (flutter/engine#12128)
2019-09-17 stuartmorgan@google.com Adds PluginRegistry to the C++ client wrapper API (flutter/engine#12287)
2019-09-17 liyuqian@google.com Add "type" to getDisplayRefreshRate protocol (flutter/engine#12319)
2019-09-17 mouad.debbar@gmail.com Add a build command to felt (flutter/engine#12303)
2019-09-17 skia-flutter-autoroll@skia.org Roll src/third_party/skia df432d5efb70..d545bfbb94ca (1 commits) (flutter/engine#12316)
2019-09-17 skia-flutter-autoroll@skia.org Roll fuchsia/sdk/core/linux-amd64 from rwf0-... to RRgw-... (flutter/engine#12315)
2019-09-17 skia-flutter-autoroll@skia.org Roll src/third_party/skia f8486f2c5fb6..df432d5efb70 (1 commits) (flutter/engine#12313)
2019-09-17 skia-flutter-autoroll@skia.org Roll src/third_party/skia b47704b0bd34..f8486f2c5fb6 (2 commits) (flutter/engine#12312)
2019-09-16 jason-simmons@users.noreply.github.com Fix the declaration of setSystemGestureExclusionRects to match the PlatformMessageHandler interface (flutter/engine#12306)
2019-09-16 gw280@google.com Manage resource and onscreen contexts using separate IOSGLContext objects (flutter/engine#12277)
2019-09-16 goderbauer@google.com Cleanup in web_ui (flutter/engine#12307)
2019-09-16 30870216+gaaclarke@users.noreply.github.com Made flutter startup faster by allowing initialization to be parallelized (flutter/engine#10182)
2019-09-16 skia-flutter-autoroll@skia.org Roll src/third_party/skia c22498502cda..b47704b0bd34 (16 commits) (flutter/engine#12304)
2019-09-16 jonahwilliams@google.com Include firefox in check to quote font families (flutter/engine#12288)
2019-09-16 bkonyi@google.com Roll src/third_party/dart 7799f424f4..dd1969a43a (2 commits)


If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
Inconnu08 pushed a commit to Inconnu08/flutter that referenced this pull request Sep 30, 2019
git@github.com:flutter/engine.git/compare/63873d9f421f...d1692d4

git log 63873d9..d1692d4 --no-merges --oneline
2019-09-17 hterkelsen@users.noreply.github.com Update canvaskit backend (flutter/engine#12318)
2019-09-17 mouad.debbar@gmail.com README for the felt tool (flutter/engine#12323)
2019-09-17 jason-simmons@users.noreply.github.com Fix continuous event polling in the GLFW event loop (flutter/engine#12320)
2019-09-17 15365765+rafern@users.noreply.github.com Tests for flutter#11283 (flutter/engine#12322)
2019-09-17 ditman@gmail.com Improve check to render (or not) a DRRect when inner falls outside of outer on RecordingCanvas (flutter/engine#12229)
2019-09-17 bkonyi@google.com Roll src/third_party/dart dd1969a43a..7505b3a5f0 (39 commits)
2019-09-17 30870216+gaaclarke@users.noreply.github.com Channel buffers (flutter/engine#12167)
2019-09-17 xster@google.com Make iOS FlutterViewController stop sending inactive/pause on app lifecycle events when not visible (flutter/engine#12128)
2019-09-17 stuartmorgan@google.com Adds PluginRegistry to the C++ client wrapper API (flutter/engine#12287)
2019-09-17 liyuqian@google.com Add "type" to getDisplayRefreshRate protocol (flutter/engine#12319)
2019-09-17 mouad.debbar@gmail.com Add a build command to felt (flutter/engine#12303)
2019-09-17 skia-flutter-autoroll@skia.org Roll src/third_party/skia df432d5efb70..d545bfbb94ca (1 commits) (flutter/engine#12316)
2019-09-17 skia-flutter-autoroll@skia.org Roll fuchsia/sdk/core/linux-amd64 from rwf0-... to RRgw-... (flutter/engine#12315)
2019-09-17 skia-flutter-autoroll@skia.org Roll src/third_party/skia f8486f2c5fb6..df432d5efb70 (1 commits) (flutter/engine#12313)
2019-09-17 skia-flutter-autoroll@skia.org Roll src/third_party/skia b47704b0bd34..f8486f2c5fb6 (2 commits) (flutter/engine#12312)
2019-09-16 jason-simmons@users.noreply.github.com Fix the declaration of setSystemGestureExclusionRects to match the PlatformMessageHandler interface (flutter/engine#12306)
2019-09-16 gw280@google.com Manage resource and onscreen contexts using separate IOSGLContext objects (flutter/engine#12277)
2019-09-16 goderbauer@google.com Cleanup in web_ui (flutter/engine#12307)
2019-09-16 30870216+gaaclarke@users.noreply.github.com Made flutter startup faster by allowing initialization to be parallelized (flutter/engine#10182)
2019-09-16 skia-flutter-autoroll@skia.org Roll src/third_party/skia c22498502cda..b47704b0bd34 (16 commits) (flutter/engine#12304)
2019-09-16 jonahwilliams@google.com Include firefox in check to quote font families (flutter/engine#12288)
2019-09-16 bkonyi@google.com Roll src/third_party/dart 7799f424f4..dd1969a43a (2 commits)


If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
3 participants