mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-05-21 06:19:31 +03:00
![]() Spin-wait often involves active sleep (better known as "pause"). x86 has a direct assembly instruction named "PAUSE" which has two roles: one is to hint at the operating systme that it might be ready to be swapped out, and the other is to create a small delay. That delay is useful as backoff from attempting to capture spinlocks, which improves the behavior of the system and allows more efficient lock acquisition. However, the "yield" instruction is not a good fit because it is effectively a nop on most Arm cores and does not cause enough delay to help backoff. The "isb" instruction is a barrier that, especially inside a loop, creates a small delay without consuming ALU resources. |
||
---|---|---|
.. | ||
mimalloc-atomic.h | ||
mimalloc-internal.h | ||
mimalloc-new-delete.h | ||
mimalloc-override.h | ||
mimalloc-types.h | ||
mimalloc.h |