Changeset 1437 in Sophya for trunk/ArchTOIPipe/Kernel/toi.cc


Ignore:
Timestamp:
Mar 12, 2001, 7:00:28 PM (25 years ago)
Author:
ansari
Message:

Protections diverses dans TOIProcessor et FITSTOIReader/Writer
Ajout d'un TOI (TOISeqBuffered) avec gestion d'un buffer entre put/get
Ajout de processeurs de test (RZTOIProc...) , programme test associe
et SMakefile (pour compil avec SOPHYA)

Reza 12/3/2001

File:
1 edited

Legend:

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

    r1370 r1437  
    2525void TOI::TOIInit() {
    2626  pthread_mutex_init(&mutex, NULL);
     27  //   ----- Rajouts Reza 12/3/2001
     28  pthread_cond_init(&condv, NULL);
     29  fgwaitput = fgwaitget = false;
     30  fgsigput = fgsigget = false;
     31  countwaitput = countwaitget = 0;
     32  //  Fin rajouts Reza 12/3/2001 ------
    2733//  pthread_mutex_setname_np(&mutex, (name + "_toi_mutex").c_str(), 0);
    2834  defaultValue = 0;
     
    3541}
    3642
     43void TOI::PrintStatus(ostream & os) const
     44{
     45  os << "TOI::PrintStatus() - Name=" << getName() << endl;
     46  os << " WaitStatus: Put/" ;
     47  if (isPutWaiting()) os << "Waiting " ;
     48  else os << "Running ";
     49  os << " PutCountWait= " << getCountWaitPut() << endl;
     50  os << " WaitStatus: Get/" ;
     51  if (isGetWaiting()) os << "Waiting " ;
     52  else os << "Running ";
     53  os << " GetCountWait= " << getCountWaitGet() << endl;
     54}
     55
     56
    3757void TOI::setProducer(TOIProcessor* p) {
    3858  if (producer)
     
    7696  Array a = doGetData(iStart, iEnd);
    7797  unlock();
     98  if (fgsigput) { fgsigput = false; broadcast(); }
    7899  return a;
    79100}
     
    84105  double dat = doGetData(i);
    85106  unlock();
     107  if (fgsigput) { fgsigput = false; broadcast(); }
    86108  return dat;
    87109}
     
    93115  TArray<int_4> a = doGetFlag(iStart, iEnd);
    94116  unlock();
     117  if (fgsigput) { fgsigput = false; broadcast(); }
    95118  return a;
    96119}
     
    101124  int_4 f = doGetFlag(i);
    102125  unlock();
     126  if (fgsigput) { fgsigput = false; broadcast(); }
    103127  return f;
    104128}
     
    110134  doPutData(i, value, flag);
    111135  unlock();
     136  if (fgsigget) { fgsigget = false; broadcast(); }
    112137}
    113138
Note: See TracChangeset for help on using the changeset viewer.