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.

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None

    Description

      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].

      Attachments

        Activity

          People

            vinod.kumar@mongodb.com Vinod Kumar
            vinod.kumar@mongodb.com Vinod Kumar
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: