Time critical execution sequence, intra-host MSG_TEST, 3 messages

Sender					Receiver
------					--------

if( interHost )				 .
msg->timingCode = START_TRIAL		 .
Send( msg, receiverPid )		 .
 .					if( msg->timingCode != START_TRIAL )
 .					<misc housekeeping>
 .					if( interHost )
 .					msg->timingCode = OK
 .					Reply(msg, senderPid )
 .					if( interHost )
 .					senderPid = Receive( msg )
if( msg->timingCode != OK )		 .
StartTiming()				 .
  LoopCounter = 0			 .
  StartSec = GetTime( &StartClick)	 .
  return				 .
msg->timingCode = typeOfTest		 .
Send( msg, receiverPid )		 .
 .					if( msg->timingCode != typeOfTest )
 .					msg->timingCode = OK
 .					Reply(msg, senderPid )
 .					while( --msgCounter )
 .					senderPid = Receive( msg )
if( msg->timingCode != OK )		 .
while ( --msgCounter )			 .
msg->timingCode = typeOfTest		 .
Send( msg, receiverPid )		 .
 .					if( msg->timingCode != typeOfTest )
 .					msg->timingCode = OK
 .					Reply(msg, senderPid )
 .					while( --msgCounter )
 .					senderPid = Receive( msg )
if( msg->timingCode != OK )		 .
while ( --msgCounter )			 .
msg->timingCode = typeOfTest		 .
Send( msg, receiverPid )		 .
 .					if( msg->timingCode != typeOfTest )
 .					msg->timingCode = OK
 .					Reply(msg, senderPid )
 .					while( --msgCounter )
 .					if( interHost )
 .					senderPid = Receive( msg )
if( msg->timingCode != OK )		 .
while ( --msgCounter )			 .
StopTiming( &elapsed, &idle )		 .
  stopSec = GetTime( &stopClick)	 .
  saveLoopCounter = LoopCounter		 .
  <compute times>			 .
  return				 .
if( interHost)				 .


Time critical execution sequence, inter-host MSG_TEST, 3 messages

Sender					Receiver
-----					--------

if( interHost )				 .
CreateLooper()				 .
msg->timingCode = START_TRIAL		 .
Send( msg, receiverPid )		 .
 .					if( msg->timingCode != START_TRIAL )
 .					<misc housekeeping>
 .					if( interHost )
 .					CreateLooper()
 .					msg->timingCode = OK
 .					Reply( msg, senderPid )
 .					if( interHost )
if( msg->timingCode != OK )		StartTiming()
StartTiming()				  LoopCounter = 0
  LoopCounter = 0			  StartSec = GetTime( &StartClick )
  StartSec = GetTime( &StartClick)	  return
  return				senderPid = Receive( msg )
msg->timingCode = typeOfTest		 .
Send( msg, receiverPid )		 .
 .					 .
 .					if( msg->timingCode != typeOfTest )
 .					msg->timingCode = OK;
 .					Reply( msg, senderPid )
 .					while( --msgCounter )
if( msg->timingCode != OK )		senderPid = Receive( msg )
while( --msgCounter )			 .
msg->timingCode = typeOfTest		 .
Send( msg, receiverPid )		 .
 .					 .
 .					if( msg->timingCode != typeOfTest )
 .					msg->timingCode = OK;
 .					Reply( msg, senderPid )
 .					while( --msgCounter )
if( msg->timingCode != OK )		senderPid = Receive( msg )
while( --msgCounter )			 .
msg->timingCode = typeOfTest		 .
Send( msg, receiverPid )		 .
 .					 .
 .					if( msg->timingCode != typeOfTest )
 .					msg->timingCode = OK;
 .					Reply( msg, senderPid )
 .					while( --msgCounter )
if( msg->timingCode != OK )		if( interHost )
while( --msgCounter )			StopTiming( NULL, &idle )
StopTiming( &elapsed, &idle )		stopSec = GetTime( &stopClick )
  stopSec = GetTime( &stopClick )	  saveLoopCounter = LoopCounter
  saveLoopCounter = LoopCounter		  <compute times>
  <compute times>			  return
  return				DestroyLooper()
if( interHost )				senderPid = Receive( msg )
DestroyLooper()				 .
