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

Make DispatcherQueueSynchronizationContext faster and zero-alloc #1058

Commits on Feb 18, 2022

  1. Configuration menu
    Copy the full SHA
    1d0aff2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4c5fa96 View commit details
    Browse the repository at this point in the history
  3. Minor code tweaks

    Sergio0694 committed Feb 18, 2022
    Configuration menu
    Copy the full SHA
    e6bf066 View commit details
    Browse the repository at this point in the history
  4. Remove static constructors from DispatcherQueueProxyHandler.Impl

    This relies on Roslyn just compiling ReadOnlySpan<byte> arrays directly into a span mapping to .data in the loaded assembly. Those properties will be JITted to a single mov reading from a constant address, and the class will no longer have a static constructor at all
    Sergio0694 committed Feb 18, 2022
    Configuration menu
    Copy the full SHA
    fb79f13 View commit details
    Browse the repository at this point in the history
  5. Suppress warning about uninitialized field

    IDispatcherQueue is just a type directly mapping to the native COM object, so the field is really just used to easily map to the vtable on that object
    Sergio0694 committed Feb 18, 2022
    Configuration menu
    Copy the full SHA
    a4fbb4a View commit details
    Browse the repository at this point in the history
  6. Revert "Remove static constructors from DispatcherQueueProxyHandler.I…

    …mpl"
    
    This reverts commit d952216.
    This optimization currently works but results in fragile code as it's relying on an implementation detail which could change in the future. This could be reverted again latere on if/when we got explicit support for alignment for RVA fields (or, support for constant unmanaged buffers built-in).
    Sergio0694 committed Feb 18, 2022
    Configuration menu
    Copy the full SHA
    2869a87 View commit details
    Browse the repository at this point in the history

Commits on Apr 20, 2022

  1. Configuration menu
    Copy the full SHA
    52dd2dd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a71a63d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    17ebd48 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    91f5a08 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e95e80e View commit details
    Browse the repository at this point in the history