The inner while loop in the following code is an example of this mechanism used in
    process synchronization.
    
    	item nextProduced;
    	while (1) {
    		while (counter == BUFFER_SIZE)
    			; /* do nothing */
    		buffer[in] = nextProduced;
    		in = (in + 1) % BUFFER_SIZE;
    		counter++;
    	}