(a) // Assume R==0 on entry // Fill message buffer for( int i=0; i<n; i++) M[i] = ...; // Signal that message is ready. R = 1; (b) // Assume R==0 on entry // Wait for signal from sender while( R==0 ) continue // Read the message for( int i=0; i<n; i++ ) ... = M[i];