Ignore:
Timestamp:
06/28/18 18:03:28 (6 years ago)
Author:
ymipsl
Message:
  • Remove temporary buffered event
  • Some cleaning

YM

File:
1 edited

Legend:

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

    r1542 r1554  
    404404    { 
    405405      client->checkBuffers(); 
    406       bool hasTmpBufferedEvent = client->hasTemporarilyBufferedEvent(); 
    407       if (hasTmpBufferedEvent) 
    408         hasTmpBufferedEvent = !client->sendTemporarilyBufferedEvent(); 
    409       // Don't process events if there is a temporarily buffered event 
    410       return server->eventLoop(!hasTmpBufferedEvent || !enableEventsProcessing); 
     406      return server->eventLoop(true); 
    411407    } 
    412408    else if (CServer::serverLevel == 1) 
    413409    { 
    414       if (!finalized) 
    415         client->checkBuffers(); 
     410      if (!finalized) client->checkBuffers(); 
    416411      bool serverFinished = true; 
    417       if (!finalized) 
    418         serverFinished = server->eventLoop(enableEventsProcessing); 
     412      if (!finalized) serverFinished = server->eventLoop(enableEventsProcessing); 
    419413      bool serverPrimFinished = true; 
    420414      for (int i = 0; i < clientPrimServer.size(); ++i) 
    421415      { 
    422         if (!finalized) 
    423           clientPrimServer[i]->checkBuffers(); 
    424         if (!finalized) 
    425           serverPrimFinished *= serverPrimServer[i]->eventLoop(enableEventsProcessing); 
     416        if (!finalized) clientPrimServer[i]->checkBuffers(); 
     417        if (!finalized) serverPrimFinished *= serverPrimServer[i]->eventLoop(enableEventsProcessing); 
    426418      } 
    427419      return ( serverFinished && serverPrimFinished); 
     
    456448       { 
    457449         ++countChildCtx_; 
    458  
     450          
     451         info(100)<<"DEBUG: context "<<getId()<<" Send client finalize"<<endl ; 
    459452         client->finalize(); 
    460          while (client->havePendingRequests()) 
    461             client->checkBuffers(); 
    462  
     453         info(100)<<"DEBUG: context "<<getId()<<" Client finalize sent"<<endl ; 
     454         while (client->havePendingRequests()) client->checkBuffers(); 
     455         client->releaseBuffers(); 
     456          
     457         info(100)<<"DEBUG: context "<<getId()<<" no pending request ok"<<endl ; 
    463458         while (!server->hasFinished()) 
    464459           server->eventLoop(); 
    465  
     460        info(100)<<"DEBUG: context "<<getId()<<" server has finished"<<endl ; 
    466461         if (hasServer) // Mode attache 
    467462         { 
     
    472467 
    473468         //! Deallocate client buffers 
    474          client->releaseBuffers(); 
    475  
     469//         client->releaseBuffers(); 
     470        info(100)<<"DEBUG: context "<<getId()<<" release client ok"<<endl ; 
    476471         //! Free internally allocated communicators 
    477472         for (std::list<MPI_Comm>::iterator it = comms.begin(); it != comms.end(); ++it) 
     
    488483       if (countChildCtx_ == 0) 
    489484         for (int i = 0; i < clientPrimServer.size(); ++i) 
     485         { 
    490486           clientPrimServer[i]->finalize(); 
     487           bool bufferReleased; 
     488           do 
     489           { 
     490             clientPrimServer[i]->checkBuffers(); 
     491             bufferReleased = !clientPrimServer[i]->havePendingRequests(); 
     492           } while (!bufferReleased); 
     493           clientPrimServer[i]->releaseBuffers(); 
     494         } 
     495            
    491496 
    492497       // (Last) context finalized message received 
     
    494499       { 
    495500         // Blocking send of context finalize message to its client (e.g. primary server or model) 
    496          info(100)<<"DEBUG: context "<<getId()<<" Send client finalize<<"<<endl ; 
     501         info(100)<<"DEBUG: context "<<getId()<<" Send client finalize"<<endl ; 
    497502         client->finalize(); 
     503         info(100)<<"DEBUG: context "<<getId()<<" Client finalize sent"<<endl ; 
    498504         bool bufferReleased; 
    499505         do 
     
    502508           bufferReleased = !client->havePendingRequests(); 
    503509         } while (!bufferReleased); 
     510         client->releaseBuffers(); 
    504511         finalized = true; 
    505  
     512         info(100)<<"DEBUG: context "<<getId()<<" bufferRelease OK"<<endl ; 
     513          
    506514         closeAllFile(); // Just move to here to make sure that server-level 1 can close files 
    507515         if (hasServer && !hasClient) 
     
    512520 
    513521         //! Deallocate client buffers 
    514          client->releaseBuffers(); 
     522//         client->releaseBuffers(); 
     523         info(100)<<"DEBUG: context "<<getId()<<" client release"<<endl ; 
     524 
     525/*          
    515526         for (int i = 0; i < clientPrimServer.size(); ++i) 
    516527           clientPrimServer[i]->releaseBuffers(); 
    517  
     528*/ 
    518529         //! Free internally allocated communicators 
    519530         for (std::list<MPI_Comm>::iterator it = comms.begin(); it != comms.end(); ++it) 
Note: See TracChangeset for help on using the changeset viewer.