Changeset 1700 in Sophya


Ignore:
Timestamp:
Oct 15, 2001, 3:38:48 PM (24 years ago)
Author:
aubourg
Message:

delete oublie

File:
1 edited

Legend:

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

    r1699 r1700  
    139139    throw(ForbiddenError("TOISegment : delete Buffer with refcount>0"));
    140140  }
     141  LOG(cout << "Destroying buffersegment sn0 "<< sn0 << endl);
    141142  delete[] data;
    142143  delete[] flags;
     
    350351
    351352  currentSegment = new BufferSegment(segmentSize);
     353  currentSegment->incRefCount();
    352354  signalWaitingViews(); // they can ask to be updated !!
    353355  pthread_mutex_unlock(&views_mutex);
     
    402404    for (vector<BufferSegment*>::iterator i = segments.begin();
    403405         i != segments.end(); i++) {
    404       if (((*i)->sn0+(*i)->bufferSize <= firstNeeded) && ((*i)->getRefCount() == 0)) {
     406      //LOG(cout << "Updating : rc = " << (*i)->getRefCount() << " sn0 = " << (*i)->sn0 << endl;);
     407      if (((*i)->sn0+(*i)->bufferSize <= firstNeeded) && ((*i)->getRefCount() == 1)) {
    405408        clean = true;
     409        (*i)->decRefCount();
     410        delete (*i);
    406411        j = i;
    407412      }
    408413    }
     414    j++;
    409415    if (clean) {
    410416      segments.erase(segments.begin(),j);
Note: See TracChangeset for help on using the changeset viewer.