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

Move platform based code in separate .cpp files for AtomicWaitable and use respective OS primitives.

    • Type: Icon: Task Task
    • Resolution: Gone away
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Service Arch

      SERVER-81797 introduces AtomicWaitable type and uses futex sys operations for linux and mutex+condition_var solution for non linux. 

      1. Add separate .cpp files for windows, linux and macOS
      2. Use OS based wake/wait functions. 

       

      For windows - it can use WaitOnAddress / WakeByAddressSingle / WakeByAddressAll

      On MacOS - we can use[ _ulock_wait/_ulock_wake|https://outerproduct.net/futex-dictionary.html#macos].

            Assignee:
            backlog-server-servicearch [DO NOT USE] Backlog - Service Architecture
            Reporter:
            vinod.kumar@mongodb.com Vinod Kumar (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: