home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / sun / rmi / transport / tcp / ConnectionAcceptor.class (.txt) next >
Encoding:
Java Class File  |  1997-07-08  |  1.7 KB  |  57 lines

  1. package sun.rmi.transport.tcp;
  2.  
  3. import java.util.Vector;
  4. import sun.rmi.transport.Connection;
  5. import sun.rmi.transport.RMIThread;
  6.  
  7. class ConnectionAcceptor implements Runnable {
  8.    private TCPTransport transport;
  9.    private Vector queue = new Vector(4);
  10.    private static int threadNum;
  11.  
  12.    public ConnectionAcceptor(TCPTransport var1) {
  13.       this.transport = var1;
  14.    }
  15.  
  16.    public void startNewAcceptor() {
  17.       Thread var1 = RMIThread.newThread(this, "Multiplex Accept-" + ++threadNum, true);
  18.       var1.start();
  19.    }
  20.  
  21.    public void accept(Connection var1) {
  22.       Vector var2 = this.queue;
  23.       synchronized(var2){}
  24.  
  25.       try {
  26.          this.queue.addElement(var1);
  27.          this.queue.notify();
  28.       } catch (Throwable var4) {
  29.          throw var4;
  30.       }
  31.  
  32.    }
  33.  
  34.    public void run() {
  35.       Vector var2 = this.queue;
  36.       synchronized(var2){}
  37.  
  38.       Connection var1;
  39.       try {
  40.          while(this.queue.size() == 0) {
  41.             try {
  42.                this.queue.wait();
  43.             } catch (InterruptedException var5) {
  44.             }
  45.          }
  46.  
  47.          this.startNewAcceptor();
  48.          var1 = (Connection)this.queue.elementAt(0);
  49.          this.queue.removeElementAt(0);
  50.       } catch (Throwable var6) {
  51.          throw var6;
  52.       }
  53.  
  54.       this.transport.handleMessages(var1, true);
  55.    }
  56. }
  57.