| 
              
d9d583bf
               | 
              
2024-04-15T00:24:47
               | 
              
               | 
              
Implement a lock/unlock-only mutex based on futex
Pthread mutexes are expensive due to their numerous features.  When a
mutex only needs to support lock and unlock, its implementation can be
much simpler.  The implementation in this change is "inspired" by a
similar mutex in mesa.
Expected uses of this mutex are:
- Allowing some OpenGL calls to avoid the share group lock and instead
  lock the specific shared object they operate on.
- Replacing SpinLock in the OpenCL implementation (spin-lock in user
  space is a bad idea [1])
- Generally anywhere we use std::mutex just to do lock/unlock
Tests based on patch authored by Igor Nazarov <i.nazarov@samsung.com>
[1]:https://www.realworldtech.com/forum/?threadid=189711&curpostid=189723
Bug: angleproject:8667
Change-Id: I52278c9d19616338c499bbcef6684746caead6ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5446558
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               |