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
the begginning
This commit is contained in:
80
tools/brmtest/locks.cpp
Normal file
80
tools/brmtest/locks.cpp
Normal file
@ -0,0 +1,80 @@
|
||||
/*
|
||||
* $Id: locks.cpp 282 2007-10-28 02:18:55Z rdempsey $
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <stdexcept>
|
||||
using namespace std;
|
||||
|
||||
#include "sessionmanager.h"
|
||||
#include "calpontsystemcatalog.h"
|
||||
using namespace execplan;
|
||||
|
||||
#include "shmkeys.h"
|
||||
#include "rwlock.h"
|
||||
#include "mastersegmenttable.h"
|
||||
using namespace BRM;
|
||||
|
||||
int query_locks()
|
||||
{
|
||||
ShmKeys keys;
|
||||
RWLock *rwlock[MasterSegmentTable::nTables];
|
||||
int RWLockKeys[MasterSegmentTable::nTables];
|
||||
int i;
|
||||
|
||||
RWLockKeys[0] = keys.KEYRANGE_EXTENTMAP_BASE;
|
||||
RWLockKeys[1] = keys.KEYRANGE_EMFREELIST_BASE;
|
||||
RWLockKeys[2] = keys.KEYRANGE_VBBM_BASE;
|
||||
RWLockKeys[3] = keys.KEYRANGE_VSS_BASE;
|
||||
RWLockKeys[4] = keys.KEYRANGE_CL_BASE;
|
||||
|
||||
for (i = 0; i < MasterSegmentTable::nTables; i++)
|
||||
rwlock[i] = new RWLock(RWLockKeys[i]);
|
||||
|
||||
for (i = 0; i < MasterSegmentTable::nTables; i++)
|
||||
if (rwlock[i]->getWriting() > 0 ||
|
||||
//rwlock[i]->getReading() > 0 ||
|
||||
rwlock[i]->getWritersWaiting() > 0 ||
|
||||
rwlock[i]->getReadersWaiting() > 0)
|
||||
return 1;
|
||||
|
||||
for (i = 0; i < MasterSegmentTable::nTables; i++)
|
||||
delete rwlock[i];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int reset_locks()
|
||||
{
|
||||
ShmKeys keys;
|
||||
RWLock *rwlock[MasterSegmentTable::nTables];
|
||||
int RWLockKeys[MasterSegmentTable::nTables];
|
||||
int i;
|
||||
SessionManager sm(true);
|
||||
|
||||
RWLockKeys[0] = keys.KEYRANGE_EXTENTMAP_BASE;
|
||||
RWLockKeys[1] = keys.KEYRANGE_EMFREELIST_BASE;
|
||||
RWLockKeys[2] = keys.KEYRANGE_VBBM_BASE;
|
||||
RWLockKeys[3] = keys.KEYRANGE_VSS_BASE;
|
||||
RWLockKeys[4] = keys.KEYRANGE_CL_BASE;
|
||||
|
||||
for (i = 0; i < MasterSegmentTable::nTables; i++)
|
||||
rwlock[i] = new RWLock(RWLockKeys[i]);
|
||||
|
||||
for (i = 0; i < MasterSegmentTable::nTables; i++)
|
||||
rwlock[i]->reset();
|
||||
|
||||
for (i = 0; i < MasterSegmentTable::nTables; i++)
|
||||
delete rwlock[i];
|
||||
|
||||
try {
|
||||
sm.reset();
|
||||
}
|
||||
catch (exception &e) {
|
||||
cout << e.what() << endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user