• Sorin Jianu's avatar
    Fix the threading for Windows on-demand server in the updater. · 9e8ae3e7
    Sorin Jianu authored
    The COM objects participating in the on-demand transactions on the
    server side are free threaded. That means that they can be entered
    by any COM RPC threads when calls  on their interfaces are made by
    the on-demand client on Chrome.
    
    These objects can also be entered by the thread pool threads of
    the updater, when callbacks from the update service are posted.
    
    This CL introduces a sequential task runner to `move` the callbacks
    which occur in the main sequence onto a new sequence, which can block on
    base synchronization primitives. Then, it introduces a lock to
    serialize access to the free threaded COM objects.
    
    BUG:1074027
    
    Change-Id: Icc8f579aebf943e5d43965f6f7d2a63e664bf0bd
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2161347
    Commit-Queue: Sorin Jianu <sorin@chromium.org>
    Reviewed-by: default avatarS. Ganesh <ganesh@chromium.org>
    Reviewed-by: default avatarJoshua Pawlicki <waffles@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#762461}
    9e8ae3e7
server.h 7.58 KB