mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-11-05 12:15:10 +01:00
217d484cba
An atomic transactional loop was performed on the backing `std::shared_ptr` inside `BufferView`/`TextureView`'s `lock`/`LockWithTag`/`try_lock` functions, these locks utilized `std::atomic_load` for atomically loading the value from the `shared_ptr` recursively till it was the same value pre/post-locking. This commit abstracts the locking functionality of `TextureView`/`BufferDelegate` into `LockableSharedPtr` to avoid code duplication and removes the usage of `std::atomic_load` in either case as it is not necessary due to the implicit memory barrier provided by locking a mutex. |
||
---|---|---|
.. | ||
libraries | ||
src/main | ||
.gitignore | ||
build.gradle | ||
CMakeLists.txt | ||
proguard-rules.pro |