Ignore:
Timestamp:
Aug 8, 2001, 12:01:41 PM (24 years ago)
Author:
ansari
Message:
  • Ajout pthread_exit apres l'execution de run() ds TOIProcessor::ThreadStart()
  • Ajout de la classe ProcSampleCounter<T> pour affichage continu de stats ds toimanager.h .cc
  • correction mineure de toi2map.cc
  • Utilisation de ProcSampleCounter<T> ds tsttoi2map.cc et simtst.cc

Reza 8/8/2001

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ArchTOIPipe/Kernel/toimanager.cc

    r1410 r1629  
    4343  }
    4444}
     45
     46
     47// -----------------------------------------------------------------
     48//    Classe pour affichage de l'avancement des TOIProcessors
     49//                         Reza 08/2001
     50// -----------------------------------------------------------------
     51
     52RzProcSampleCounter::RzProcSampleCounter()
     53{
     54  _msg = "SampleCounter/Info";
     55  _rate = 50;
     56}
     57
     58RzProcSampleCounter::~RzProcSampleCounter()
     59{
     60}
     61
     62long RzProcSampleCounter::PrintStats()
     63{
     64  int istart = 0;
     65  int iend = 0;
     66  long dns_print = 1000;
     67  int dns_print_fac = _rate;
     68  int nbmax_dns_print = 2;
     69
     70  TOIManager* mgr = TOIManager::getManager();
     71 
     72  istart = mgr->getRequestedBegin();
     73  iend = mgr->getRequestedEnd();
     74 
     75  dns_print = (iend-istart)/dns_print_fac;
     76  if (dns_print < 1000) dns_print = ((iend-istart) < 1000) ? (iend-istart) : 1000;
     77  if (dns_print < 1) dns_print = 1;
     78  nbmax_dns_print = (iend-istart)/dns_print;
     79
     80  cout << "RzProcSampleCounter::PrintStats() InfoMessage=" << _msg
     81       << "\n ... " << _msg << " istart="
     82       << istart << " iend= " << iend << " dns_print= " << dns_print
     83       << " nbmax_dns_print= " << nbmax_dns_print << endl;
     84  // ------------------- Impression continu de stat ------------------------
     85  long nb_dns_print = 0;
     86  int nb_sleep = 0;
     87  long last_sample_count = 0;
     88  long processed_samples = 0;
     89  long total_sample_count = dns_print*nbmax_dns_print;
     90  bool alldone = false;
     91  while (!alldone) {
     92    processed_samples = ProcessedSampleCount();
     93    if ( (processed_samples-last_sample_count > dns_print) ||
     94         (processed_samples > total_sample_count-10) ) {
     95      last_sample_count = processed_samples;
     96      if (nb_dns_print == 0) cout << "\n";
     97      nb_dns_print++;
     98      cout << ">>> " << _msg << ": ProcessedSampleCount()= " << last_sample_count
     99           << " Frac done = " << processed_samples*100/total_sample_count << " %" << endl;
     100      if (last_sample_count > total_sample_count-10)  alldone = true;
     101      nb_sleep = 0;
     102    }
     103    else if ((nb_sleep+1)%5 == 0)
     104      cout << "> " << _msg << ": ProcSamples()= " <<  processed_samples
     105           << " Done = " << " %" << processed_samples*100/total_sample_count
     106           << " NbSleep(1) = " << nb_sleep << endl;
     107   
     108    sleep(1);  nb_sleep++;
     109  }
     110 
     111  // -----------------------------------------------------------------------
     112 
     113  return last_sample_count;
     114
     115}
Note: See TracChangeset for help on using the changeset viewer.