use of com.swiftmq.tools.concurrent.Semaphore in project swiftmq-ce by iitsoftware.
the class Consumer method consume.
public void consume() {
sem = new Semaphore();
sem.waitHere();
if (exception != null)
failFast("failed: " + exception);
}
use of com.swiftmq.tools.concurrent.Semaphore in project swiftmq-ce by iitsoftware.
the class Listener method receive.
public void receive() {
try {
sem = new Semaphore();
receiver.setMessageListener(this);
sem.waitHere();
if (exception != null)
throw exception;
verifier.verify();
} catch (Exception e) {
failFast("test failed: " + e);
}
}
use of com.swiftmq.tools.concurrent.Semaphore in project swiftmq-ce by iitsoftware.
the class Listener method receive.
public void receive() {
try {
Semaphore sem1 = new Semaphore();
receiver.setMessageListener(new MyListener(new MsgNoVerifier(this, nMsgs, "no"), sem1));
Semaphore sem2 = new Semaphore();
receiver1.setMessageListener(new MyListener(new MsgNoVerifier(this, nMsgs, "no"), sem2));
Semaphore sem3 = new Semaphore();
receiver2.setMessageListener(new MyListener(new MsgNoVerifier(this, nMsgs, "no"), sem3));
sem1.waitHere();
sem2.waitHere();
sem3.waitHere();
if (exception != null)
throw exception;
} catch (Exception e) {
failFast("test failed: " + e);
}
}
use of com.swiftmq.tools.concurrent.Semaphore in project swiftmq-client by iitsoftware.
the class ConnectionImpl method handOver.
public void handOver(com.swiftmq.net.client.Connection connection) {
this.connection = connection;
if (connection != null) {
connectionId++;
myHostname = connection.getLocalHostname();
connection.setInboundHandler(this);
connection.setExceptionHandler(this);
outStream = new DataStreamOutputStream(connection.getOutputStream());
if (connectionQueue != null) {
connectionQueue.clear();
connectionQueue.startQueue();
}
// Blocks new XA Requests
setSessionBlockState(true);
if (requestRegistry != null) {
requestRegistry.setPaused(false);
Semaphore retrySem = new Semaphore();
requestRegistry.retryAllRequests(retrySem);
retrySem.waitHere();
}
resetSessions(false);
notifyReconnectListener();
setSessionBlockState(false);
}
}
use of com.swiftmq.tools.concurrent.Semaphore in project swiftmq-client by iitsoftware.
the class Connector method close.
public void close() {
if (debug)
System.out.println(toString() + ", close ...");
synchronized (closeSync) {
if (closeInProgress) {
if (debug)
System.out.println(toString() + ", close in progress, return");
return;
}
closeInProgress = true;
}
Semaphore sem = new Semaphore();
dispatch(new POClose(sem));
sem.waitHere();
if (debug)
System.out.println(toString() + ", close done");
}
Aggregations