1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00

fix(BRM): MCOL-5879 DBRM::clearShm runs crit sections w/o sync mechanism (#3390)

This commit is contained in:
drrtuy
2025-02-20 16:33:28 +00:00
committed by GitHub
parent c0fade0c55
commit 6001db44ab
6 changed files with 29 additions and 24 deletions

View File

@ -101,11 +101,11 @@ class DBRM
EXPORT DBRM(bool noBRMFcns = false);
EXPORT ~DBRM();
EXPORT static void refreshShm()
static void refreshShmWithLock()
{
MasterSegmentTableImpl::refreshShm();
ExtentMapRBTreeImpl::refreshShm();
FreeListImpl::refreshShm();
MasterSegmentTableImpl::refreshShmWithLock();
ExtentMapRBTreeImpl::refreshShmWithLock();
FreeListImpl::refreshShmWithLock();
}
// @bug 1055+ - Added functions below for multiple files per OID enhancement.

View File

@ -265,6 +265,12 @@ class ExtentMapRBTreeImpl
static ExtentMapRBTreeImpl* makeExtentMapRBTreeImpl(unsigned key, off_t size, bool readOnly = false);
static void refreshShmWithLock()
{
boost::mutex::scoped_lock lk(fInstanceMutex);
return refreshShm();
}
static void refreshShm()
{
if (fInstance)
@ -317,6 +323,13 @@ class FreeListImpl
~FreeListImpl(){};
static FreeListImpl* makeFreeListImpl(unsigned key, off_t size, bool readOnly = false);
static void refreshShmWithLock()
{
boost::mutex::scoped_lock lk(fInstanceMutex);
return refreshShm();
}
static void refreshShm()
{
if (fInstance)

View File

@ -61,6 +61,12 @@ class MasterSegmentTableImpl
~MasterSegmentTableImpl(){};
static MasterSegmentTableImpl* makeMasterSegmentTableImpl(int key, int size);
static void refreshShmWithLock()
{
boost::mutex::scoped_lock lk(fInstanceMutex);
return refreshShm();
}
static void refreshShm()
{
if (fInstance)