Changeset 19257

Show
Ignore:
Timestamp:
08/23/06 07:49:53 (2 years ago)
Author:
patrick
Message:

Do not break out of the loop receiving synchronization packets from slave
nodes when one node times out. This prevents the master's handling of
synchronization packets from getting out of sync with the data stream
except for the node that timed out. However, the master will end up being a
frame behind on reading synchronization packets from the node that timed out,
so there is still more to be done here.

Submitted by: dshipton
Reviewed by: aronb

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • juggler/branches/2.0/modules/gadgeteer/plugins/SwapLockTCPPlugin/SwapLockTCPPlugin.cpp

    r16524 r19257  
    332332           i < mSyncClients.end();i++) 
    333333      { 
     334         // If we time out while trying to receive a synchronization packet, 
     335         // print a warning about the barrier slipping and move on to the next 
     336         // node. Even when one node times out, there will still be 
     337         // synchronization packets to read from the remaining nodes. 
     338         // XXX: When the reading of a synchronization packet from a node 
     339         // times out, the next time we try to read a synchronization packet, 
     340         // it will be from the previous frame! 
    334341         if((*i)->recv(&temp , 1, bytes_read,read_timeout) == vpr::ReturnStatus::Timeout) 
    335342         { 
    336             vprDEBUG(gadgetDBG_RIM,vprDBG_CONFIG_LVL) 
    337                << clrOutBOLD(clrMAGENTA,"[SwapLockTCPPlugin::masterReceive()]") 
    338                << " SwapBarrier slip.\n" << vprDEBUG_FLUSH; 
    339             return;             
     343            vprDEBUG(gadgetDBG_RIM, vprDBG_WARNING_LVL) 
     344               << clrOutBOLD(clrYELLOW, "WARNING") 
     345               << ": [SwapLockTCPPlugin::masterReceive()] SwapBarrier slip " 
     346               << "from " << (*i)->getName() << " (addres " 
     347               << (*i)->getRemoteAddr().getAddressString() << ").\n" 
     348               << vprDEBUG_FLUSH; 
    340349/*            static int numTimeouts = 0; 
    341350            numTimeouts++;