package nachos.threads; import nachos.machine.*; /** * A communicator allows threads to synchronously exchange 32-bit * messages. Multiple threads can be waiting to speak, * and multiple threads can be waiting to listen. But there should never * be a time when both a speaker and a listener are waiting, because the two * threads can be paired off at this point. */ public class Communicator { /** * Allocate a new communicator. */ public Communicator() { } /** * Wait for a thread to listen through this communicator, and then transfer * word to the listener. * *

* Does not return until this thread is paired up with a listening thread. * Exactly one listener should receive word. * * @param word the integer to transfer. */ public void speak(int word) { } /** * Wait for a thread to speak through this communicator, and then return * the word that thread passed to speak(). * * @return the integer transferred. */ public int listen() { return 0; } }