[SERVER-86362] Move platform based code in separate .cpp files for AtomicWaitable and use respective OS primitives. Created: 07/Feb/24  Updated: 07/Feb/24

Status: Needs Scheduling
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Vinod Kumar Assignee: Vinod Kumar
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-81797 Make our own portable implementation ... In Code Review
Participants:

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


Generated at Thu Feb 08 07:00:05 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.