mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
This commit is contained in:
commit
91a593adcb
1 changed files with 22 additions and 20 deletions
|
@ -85,7 +85,7 @@ FastScheduler::activateSendPacked()
|
|||
void
|
||||
FastScheduler::doJob()
|
||||
{
|
||||
Uint32 init_loopCount = 0;
|
||||
Uint32 loopCount = 0;
|
||||
Uint32 TminLoops = getBOccupancy() + EXTRA_SIGNALS_PER_DO_JOB;
|
||||
Uint32 TloopMax = (Uint32)globalData.loopMax;
|
||||
if (TminLoops < TloopMax) {
|
||||
|
@ -94,10 +94,9 @@ FastScheduler::doJob()
|
|||
if (TloopMax < MIN_NUMBER_OF_SIG_PER_DO_JOB) {
|
||||
TloopMax = MIN_NUMBER_OF_SIG_PER_DO_JOB;
|
||||
}//if
|
||||
register Signal* signal = getVMSignals();
|
||||
register Uint32 tHighPrio= globalData.highestAvailablePrio;
|
||||
do{
|
||||
Uint32 loopCount = init_loopCount;
|
||||
register Uint32 tHighPrio = globalData.highestAvailablePrio;
|
||||
register Signal* signal = getVMSignals();
|
||||
while ((tHighPrio < LEVEL_IDLE) && (loopCount < TloopMax)) {
|
||||
// signal->garbage_register();
|
||||
// To ensure we find bugs quickly
|
||||
|
@ -155,24 +154,27 @@ FastScheduler::doJob()
|
|||
}//if
|
||||
loopCount++;
|
||||
}//while
|
||||
if (globalData.sendPackedActivated == 1) {
|
||||
Uint32 t1 = theDoJobTotalCounter;
|
||||
Uint32 t2 = theDoJobCallCounter;
|
||||
t1 += (loopCount - init_loopCount);
|
||||
t2++;
|
||||
theDoJobTotalCounter = t1;
|
||||
theDoJobCallCounter = t2;
|
||||
if (t2 == 8192) {
|
||||
reportDoJobStatistics(t1 >> 13);
|
||||
theDoJobCallCounter = 0;
|
||||
theDoJobTotalCounter = 0;
|
||||
}//if
|
||||
}//if
|
||||
init_loopCount = loopCount;
|
||||
sendPacked();
|
||||
tHighPrio = globalData.highestAvailablePrio;
|
||||
if(getBOccupancy() > MAX_OCCUPANCY)
|
||||
{
|
||||
if(loopCount != TloopMax)
|
||||
abort();
|
||||
assert( loopCount == TloopMax );
|
||||
TloopMax += 512;
|
||||
}
|
||||
} while ((getBOccupancy() > MAX_OCCUPANCY) ||
|
||||
((init_loopCount < TloopMax) &&
|
||||
(globalData.highestAvailablePrio < LEVEL_IDLE)));
|
||||
((loopCount < TloopMax) &&
|
||||
(tHighPrio < LEVEL_IDLE)));
|
||||
|
||||
theDoJobCallCounter ++;
|
||||
theDoJobTotalCounter += loopCount;
|
||||
if (theDoJobCallCounter == 8192) {
|
||||
reportDoJobStatistics(theDoJobTotalCounter >> 13);
|
||||
theDoJobCallCounter = 0;
|
||||
theDoJobTotalCounter = 0;
|
||||
}//if
|
||||
|
||||
}//FastScheduler::doJob()
|
||||
|
||||
void FastScheduler::sendPacked()
|
||||
|
|
Loading…
Reference in a new issue