Ignore:
Timestamp:
07/03/17 16:45:10 (7 years ago)
Author:
oabramkina
Message:

Two server levels: fixing a bug during context finalization. The last buffer check for the connection from server (classical or primary) to client must be blocking. Otherwise it's possible to have lost messages sent by server to client causing a deadlock on the side of client at context finalization.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_olga/src/context_client.cpp

    r1184 r1193  
    451451 
    452452   CTimer::get("Blocking time").resume(); 
    453 //    while (!stop) 
     453//   while (!stop) 
    454454   { 
    455455     checkBuffers(); 
    456456     if (hasTemporarilyBufferedEvent()) 
    457457       sendTemporarilyBufferedEvent(); 
    458  
    459458     stop = true; 
     459//     for (itBuff = buffers.begin(); itBuff != buffers.end(); itBuff++) stop &= !itBuff->second->hasPendingRequest(); 
    460460   } 
    461461   CTimer::get("Blocking time").suspend(); 
Note: See TracChangeset for help on using the changeset viewer.