Ignore:
Timestamp:
04/15/22 13:05:33 (2 years ago)
Author:
ymipsl
Message:

Solve deadlock or crash occuring when activate second levels of servers.

YM

File:
1 edited

Legend:

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

    r2321 r2324  
    684684    setCurrent(getId()) ; 
    685685 
    686     if (client!=nullptr && !finalized) client->checkBuffers(); 
     686    if (client!=nullptr && !finalized) client->eventLoop(); 
    687687     
    688688    for (int i = 0; i < clientPrimServer.size(); ++i) 
    689689    { 
    690       if (!finalized) clientPrimServer[i]->checkBuffers(); 
     690      if (!finalized) clientPrimServer[i]->eventLoop(); 
    691691      if (!finalized) finished &= serverPrimServer[i]->eventLoop(enableEventsProcessing); 
    692692    } 
    693693 
    694694    for (auto couplerOut : couplerOutClient_) 
    695       if (!finalized) couplerOut.second->checkBuffers(); 
     695      if (!finalized) couplerOut.second->eventLoop(); 
    696696     
    697697    for (auto couplerIn : couplerInClient_) 
    698       if (!finalized) couplerIn.second->checkBuffers(); 
     698      if (!finalized) couplerIn.second->eventLoop(); 
    699699     
    700700    for (auto couplerOut : couplerOutServer_) 
     
    788788        client->finalize(); 
    789789        info(100)<<"DEBUG: context "<<getId()<<" Client finalize sent"<<endl ; 
    790         while (client->havePendingRequests()) client->checkBuffers(); 
     790        while (client->havePendingRequests()) client->eventLoop(); 
    791791        info(100)<<"DEBUG: context "<<getId()<<" no pending request ok"<<endl ; 
    792792        bool notifiedFinalized=false ; 
     
    808808           do 
    809809           { 
    810              clientPrimServer[i]->checkBuffers(); 
     810             clientPrimServer[i]->eventLoop(); 
    811811             bufferReleased = !clientPrimServer[i]->havePendingRequests(); 
    812812           } while (!bufferReleased); 
     
    10991099    { 
    11001100      for(auto field : fileOutField) slaveServers_.insert(field->getContextClient()) ;  
    1101       for(auto field : fileInField)  slaveServers_.insert(field->getContextClient()) ;   
    11021101    } 
    11031102 
     
    17091708   TRY 
    17101709   { 
    1711      CEventClient event(getType(),EVENT_ID_UPDATE_CALENDAR); 
    17121710     for(auto client : slaveServers_)  
    17131711     { 
     1712       CEventClient event(getType(),EVENT_ID_UPDATE_CALENDAR); 
    17141713       if (client->isServerLeader()) 
    17151714       { 
Note: See TracChangeset for help on using the changeset viewer.