Ignore:
Timestamp:
08/04/16 16:24:20 (8 years ago)
Author:
rlacroix
Message:

Fix the client/server communication protocol.

In the some extreme cases a deadlock could occur. To fix this, the number of buffered events must be properly limited.

If you noticed decreased performance due to this commit, please let us know about it.

Fixes ticket #91.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/buffer_client.hpp

    r732 r917  
    1414      static size_t maxRequestSize; 
    1515 
    16       CClientBuffer(MPI_Comm intercomm,int serverRank, StdSize bfSize = 0); 
     16      CClientBuffer(MPI_Comm intercomm, int serverRank, StdSize bufferSize, StdSize maxBufferedEvents); 
    1717      ~CClientBuffer(); 
    1818 
     
    2828      int current; 
    2929      int count; 
    30       int bufferSize; 
    31       int serverRank; 
     30      int bufferedEvents; 
     31      const int maxBufferedEvents; 
     32      const int bufferSize; 
     33      const int serverRank; 
    3234      bool pending; 
    3335 
     
    3537 
    3638      CBufferOut* retBuffer; 
    37       MPI_Comm interComm; 
     39      const MPI_Comm interComm; 
    3840  }; 
    3941} 
    40  
    4142#endif 
Note: See TracChangeset for help on using the changeset viewer.