Ignore:
Timestamp:
04/22/22 11:46:41 (2 years ago)
Author:
ymipsl
Message:

Fix Deadlock from reading phase.
YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/context_server.cpp

    r2310 r2326  
    115115    CTimer::get("check pending request").suspend(); 
    116116    CTimer::get("check event process").resume(); 
    117     if (enableEventsProcessing)  processEvents(); 
     117    processEvents(enableEventsProcessing); 
    118118    CTimer::get("check event process").suspend(); 
    119119    return finished; 
     
    320320        buffers[rank]->freeBuffer(count) ; 
    321321        delete buffers[rank] ; 
    322         buffers[rank] = new CServerBuffer(windows_[rank], winAdress, 0, newSize) ; 
     322        buffers[rank] = new CServerBuffer(windows_[rank], winAdress, 0, 2*newSize) ; 
    323323        info(100)<<"Context id "<<context->getId()<<" : Receive ChangeBufferSize from client rank "<<rank 
    324324                 <<"  newSize : "<<newSize<<" Address : "<<winAdress[0]<<" & "<<winAdress[1]<<endl ; 
     
    339339  } 
    340340 
    341   void CContextServer::processEvents(void) 
     341  void CContextServer::processEvents(bool enableEventsProcessing) 
    342342  { 
    343343    map<size_t,CEventServer*>::iterator it; 
     
    363363        else if (isAttachedModeEnabled() || eventScheduler_->queryEvent(currentTimeLine,hashId) ) 
    364364        { 
     365          if (!enableEventsProcessing && isCollectiveEvent(*event)) return ; 
    365366 
    366367          if (!eventScheduled_)  
     
    498499  bool CContextServer::isCollectiveEvent(CEventServer& event) 
    499500  { 
    500     if (event.classId==CField::GetType()) return CField::isCollectiveEvent(event); 
     501    if (event.type>1000) return false ; 
    501502    else return true ; 
    502503  } 
Note: See TracChangeset for help on using the changeset viewer.