/*
@author  j.n.magee 20/11/96
*/
package concurrency.message;

import java.awt.*;
import java.util.*;
import java.applet.*;

/* ********************Port**************************** */
// The definition of channel assumes that there can be many sender
// but only one receiver

class Port extends Selectable{

    Vector queue = new Vector();

    public synchronized void send(Object v) {
        queue.addElement(v);
        signal();
    }

    public synchronized Object receive() throws InterruptedException {
        block();
        clearReady();
        Object tmp = queue.elementAt(0);
        queue.removeElementAt(0);
        return(tmp);
    }
}

