I think you're describing traditional scheduling. The point is that sometimes overheads from cache thrashing and context switches are worse than just spinning.
My information about locking and scheduling is dated and naiive. What is preventing per-thread structure of two identifiers "I am waiting for thing X, give it priority" and "I am in posession of X"? Identifiers are random numbers. System call is not necessary, some writable location is enough.
hamilyon2|2 years ago