Changeset 2565


Ignore:
Timestamp:
09/14/23 09:06:45 (8 months ago)
Author:
jderouillat
Message:

Clean buffers of servers in One Sided protocol

Location:
XIOS3/trunk/src/transport
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • XIOS3/trunk/src/transport/one_sided_server_buffer.cpp

    r2399 r2565  
    113113 
    114114    if (buffers_.size()>1)  
    115      if (buffers_.front()->getCount()==0) buffers_.pop_front() ; // if buffer is empty free buffer 
     115    { 
     116      if (buffers_.front()->getCount()==0) { 
     117        delete buffers_.front(); 
     118        buffers_.pop_front() ; // if buffer is empty free buffer 
     119      } 
     120    } 
    116121  } 
    117122 
     
    408413      bloc.buffer->free(bloc.start, bloc.count) ; // free bloc 
    409414      addr=bloc.addr ; 
    410       if (bloc.buffer->getCount()==0) if (buffers_.size() > 1) buffers_.pop_front() ; // if buffer is empty free buffer 
     415      if (bloc.buffer->getCount()==0) 
     416      { 
     417        if (buffers_.size() > 1) 
     418        { 
     419          delete buffers_.front(); 
     420          buffers_.pop_front() ; // if buffer is empty free buffer 
     421        } 
     422      }       
    411423    } 
    412424    event.push(clientRank_, nullptr, buffer, size) ; 
  • XIOS3/trunk/src/transport/one_sided_server_buffer.hpp

    r2558 r2565  
    3636          {  
    3737            if (count_>0) ERROR("COneSidedServerBuffer::~CBuffer()",<<"Try to delete buffer that is not empty"<<std::endl) ; 
    38             MPI_Free_mem(&buffer_) ; 
     38            MPI_Free_mem(buffer_) ; 
    3939          } 
    4040        
     
    104104                             map<size_t, SPendingEvent>& completedEvents, vector<char>& buffer)  ; 
    105105       
     106      ~COneSidedServerBuffer() 
     107      { 
     108          while (!buffers_.empty()) { 
     109              delete buffers_.front(); 
     110              buffers_.pop_front() ; // if buffer is empty free buffer 
     111          } 
     112      }; 
     113 
    106114      void receivedRequest(vector<char>& buffer) ; 
    107115      void eventLoop(void) ; 
Note: See TracChangeset for help on using the changeset viewer.