|
|
|
|
|
by ajross
1684 days ago
|
|
What you describe isn't a spinlock then. It's a regular blocking IPC primitive with an optimization layer that can busy-wait a bit. As the term is pervasively used in industry, "spinlocks" always imply locking against other physical hardware, and that can't be done without spinning (I mean, you could fall back to blocking, but then the blocking implementation in the kernel would have to lock its own data structures to effect the scheduling; it's a chicken and egg problem). They usually, but not quite always, imply protection against asynchronous interrupts or signals too. |
|
[1] https://www.kernel.org/doc/html/latest/locking/locktypes.htm...
[2] https://github.com/apple/darwin-libplatform/blob/main/src/os...