Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-56428

Replace usage of atomic_load/atomic_store of shared_ptr or custom mutex with atomic<shared_ptr>

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Execution

      The loose atomic_load/atomic_store functions for shared_ptr are implemented over a global pool of 16 mutexes on Linux and a single mutex on Windows.

      This leads to unrelated shared_ptr stores may use the same mutex and create contention for each other. We've added our own explicit mutexes but ideally we should use std::atomic<std::shared_ptr> when supported in our toolchain.

            Assignee:
            Unassigned Unassigned
            Reporter:
            henrik.edin@mongodb.com Henrik Edin
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated: