You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
Squash merge of the threaded UM hash table construction feature.
Conflicts: oam/etc/Columnstore.xml.singleserver
This commit is contained in:
27
utils/common/spinlock.h
Normal file
27
utils/common/spinlock.h
Normal file
@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <atomic>
|
||||
|
||||
namespace utils
|
||||
{
|
||||
|
||||
inline void getSpinlock(std::atomic<bool> &lock)
|
||||
{
|
||||
bool _false = false;
|
||||
while (!lock.compare_exchange_weak(_false, true, std::memory_order_acquire))
|
||||
_false = false;
|
||||
}
|
||||
|
||||
inline bool trySpinlock(std::atomic<bool> &lock)
|
||||
{
|
||||
bool _false = false;
|
||||
bool ret = lock.compare_exchange_weak(_false, true, std::memory_order_acquire);
|
||||
return ret;
|
||||
}
|
||||
|
||||
inline void releaseSpinlock(std::atomic<bool> &lock)
|
||||
{
|
||||
lock.store(false, std::memory_order_release);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user