US 11,940,931 B2
Turnstile API for runtime priority boosting
Jainam A. Shah, San Jose, CA (US); Jeremy C. Andrus, Sunnyvale, CA (US); Daniel A. Chimene, San Francisco, CA (US); Kushal Dalmia, Santa Clara, CA (US); Pierre Habouzit, San Jose, CA (US); James M. Magee, Orlando, FL (US); Marina Sadini, Cupertino, CA (US); and Daniel A. Steffen, San Francisco, CA (US)
Assigned to Apple Inc., Cupertino, CA (US)
Filed by Apple Inc., Cupertino, CA (US)
Filed on Jan. 5, 2021, as Appl. No. 17/141,914.
Application 17/141,914 is a continuation of application No. 16/380,300, filed on Apr. 10, 2019, granted, now 10,901,920.
Claims priority of provisional application 62/679,848, filed on Jun. 3, 2018.
Prior Publication US 2021/0157748 A1, May 27, 2021
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/52 (2006.01); G06F 9/48 (2006.01); G06F 9/50 (2006.01); G06F 9/54 (2006.01); G06F 12/14 (2006.01); G06F 12/0842 (2016.01)
CPC G06F 12/1466 (2013.01) [G06F 9/4881 (2013.01); G06F 9/5038 (2013.01); G06F 9/52 (2013.01); G06F 9/526 (2013.01); G06F 9/541 (2013.01); G06F 9/545 (2013.01); G06F 12/0842 (2013.01); G06F 2209/5011 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A data processing system comprising:
a memory device to store instructions;
one or more processors coupled to the memory device, wherein the one or more processors are to execute the instructions stored on the memory device and the instructions, when executed, cause the one or more processors to:
instantiate a synchronization primitive to control access to a resource, the synchronization primitive comprising a user mode primitive;
acquire the synchronization primitive at a first thread, the first thread having a first user mode priority and a first kernel mode priority;
in response to an attempt to acquire the synchronization primitive at a second thread while the synchronization primitive is held by the first thread, add the second thread to a wait queue of a first turnstile object associated with the synchronization primitive; and
signal the second thread when the synchronization primitive is available to be acquired.