You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-01 06:46:55 +03:00
Noticed another deadlock possibility in PoolAllocator.
Also currently not a problem.
This commit is contained in:
@ -71,16 +71,11 @@ void * PoolAllocator::allocOOB(uint64_t size)
|
|||||||
bool _false = false;
|
bool _false = false;
|
||||||
OOBMemInfo memInfo;
|
OOBMemInfo memInfo;
|
||||||
|
|
||||||
if (useLock)
|
|
||||||
while (!lock.compare_exchange_weak(_false, true, std::memory_order_acquire))
|
|
||||||
_false = false;
|
|
||||||
memUsage += size;
|
memUsage += size;
|
||||||
memInfo.mem.reset(new uint8_t[size]);
|
memInfo.mem.reset(new uint8_t[size]);
|
||||||
memInfo.size = size;
|
memInfo.size = size;
|
||||||
void *ret = (void*) memInfo.mem.get();
|
void *ret = (void*) memInfo.mem.get();
|
||||||
oob[ret] = memInfo;
|
oob[ret] = memInfo;
|
||||||
if (useLock)
|
|
||||||
lock.store(false, std::memory_order_release);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user