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

Don't shift interleaved updates to separate lane #20681

Merged
merged 1 commit into from
Feb 9, 2021

Commits on Feb 8, 2021

  1. Don't shift interleaved updates to separate lane

    Now that interleaved updates are added to a special queue, we no longer
    need to shift them into their own lane. We can add to a lane that's
    already in the middle of rendering without risk of tearing.
    
    See facebook#20615 for more background.
    
    I've only changed this in the new fork, and only behind the
    enableTransitionEntanglements flag.
    
    Most of this commit involves updating tests. The "shift-to-a-new" lane
    trick was intentionally used in a handful of tests where two or more
    updates need to be scheduled in different lanes. Most of these tests
    were written before `startTransition` existed, and all of them were
    written before transitions were assigned arbitrary lanes.
    
    So I ported these tests to use `startTransition` instead, which is the
    idiomatic way to mark an update as parallel.
    
    I didn't change the old fork at all. Writing these tests in such a way
    that they also pass in the old fork actually revealed a few flaws in the
    current implementation regarding interrupting a suspended refresh
    transition early, which is a good reminder that we should be writing our
    tests using idiomatic patterns as much as we possibly can.
    acdlite committed Feb 8, 2021
    Configuration menu
    Copy the full SHA
    bd50e04 View commit details
    Browse the repository at this point in the history