Commit 81abb11a authored by unknown's avatar unknown
Browse files

Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-4.1

into mysql.com:/Users/mikron/mysql-4.1

parents e244a3a9 0a507d2c
Loading
Loading
Loading
Loading
+22 −11
Original line number Diff line number Diff line
@@ -76,11 +76,16 @@ FastScheduler::activateSendPacked()
  globalData.loopMax = 2048;
}//FastScheduler::activateSendPacked()

//------------------------------------------------------------------------
// sendPacked is executed at the end of the loop.
// To ensure that we don't send any messages before executing all local
// packed signals we do another turn in the loop (unless we have already
// executed too many signals in the loop).
//------------------------------------------------------------------------
void 
FastScheduler::doJob()
{
  do{
    Uint32 loopCount = 0;
  Uint32 init_loopCount = 0;
  Uint32 TminLoops = getBOccupancy() + EXTRA_SIGNALS_PER_DO_JOB;
  Uint32 TloopMax = (Uint32)globalData.loopMax;
  if (TminLoops < TloopMax) {
@@ -89,6 +94,8 @@ FastScheduler::doJob()
  if (TloopMax < MIN_NUMBER_OF_SIG_PER_DO_JOB) {
    TloopMax = MIN_NUMBER_OF_SIG_PER_DO_JOB;
  }//if
  do{
    Uint32 loopCount = init_loopCount;
    register Uint32 tHighPrio = globalData.highestAvailablePrio;
    register Signal* signal = getVMSignals();
    while ((tHighPrio < LEVEL_IDLE) && (loopCount < TloopMax)) {
@@ -151,7 +158,7 @@ FastScheduler::doJob()
    if (globalData.sendPackedActivated == 1) {
      Uint32 t1 = theDoJobTotalCounter;
      Uint32 t2 = theDoJobCallCounter;
      t1 += loopCount;
      t1 += (loopCount - init_loopCount);
      t2++;
      theDoJobTotalCounter = t1;
      theDoJobCallCounter = t2;
@@ -161,7 +168,11 @@ FastScheduler::doJob()
        theDoJobTotalCounter = 0;
      }//if
    }//if
  } while (getBOccupancy() > MAX_OCCUPANCY);
    init_loopCount = loopCount;
    sendPacked();
  } while ((getBOccupancy() > MAX_OCCUPANCY) ||
           ((init_loopCount < TloopMax) &&
            (globalData.highestAvailablePrio < LEVEL_IDLE)));
}//FastScheduler::doJob()

void FastScheduler::sendPacked()
+0 −3
Original line number Diff line number Diff line
@@ -173,9 +173,6 @@ void ThreadConfig::ipControlLoop()
// until all buffers are empty or until we have executed 2048 signals.
//--------------------------------------------------------------------
    globalScheduler.doJob();

    globalScheduler.sendPacked();

  }//while

  globalData.incrementWatchDogCounter(6);