All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.remoting.samples.chat.utility.ShutDownGate Maven / Gradle / Ivy

There is a newer version: 5.0.29.Final
Show newest version
package org.jboss.remoting.samples.chat.utility;

/**
 * 

Title: Chat4

*

Description:

*

Copyright: Copyright (c) 2003

*

Company:

* @author not attributable * @version 1.0 */ import java.io.Serializable; import org.jboss.remoting.samples.chat.exceptions.ShuttingDownException; public class ShutDownGate implements Serializable { private static final long serialVersionUID = 2; private int numberOfUsers; private boolean shuttingDown; public ShutDownGate() { reset(); } public void reset() { numberOfUsers = 0; shuttingDown = false; } public synchronized void check() throws ShuttingDownException { if (shuttingDown == true) throw new ShuttingDownException(); } public synchronized boolean isShuttingDown() { return shuttingDown; } public synchronized void enter() throws ShuttingDownException { if (shuttingDown == true) throw new ShuttingDownException(); numberOfUsers++; } public synchronized void leave() { if (numberOfUsers <= 0) throw new Error("ShutDownGate: number of Users <= 0"); if (--numberOfUsers == 0) notifyAll(); } public synchronized void shutDown() { shuttingDown = true; while (numberOfUsers > 0) { try { System.out.println("shutdown(): numberOfUsers == " + numberOfUsers); wait(); } catch (InterruptedException ie) {} } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy