[util] Improve Spinlock implementation
Addresses two potential issues: - Our spinlocks are almost never contested, however the code generated is not ideal without the likely/unlikely hints. - In the unlike event that a spinlock is in fact contested, we'd yield immediately, even though most of the time we'd only have to wait for a few hundred cycles at most. Replacing our spinlocks with std::mutex is not an option due to much higher locking overhead in the uncontested case; doing so reduces performance significantly for the buffer slice and pipeline locks.
Showing with 10 additions and 4 deletions