package org.apache.sshd.common.util; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; public class EventCollector<T> { private boolean flag=false; ReentrantLock lock=new ReentrantLock(); Condition trueFlag = lock.newCondition(); private SshListener<T> listener= new SshListener<T>() { public void run(T event) { try { lock.lock(); flag=true; trueFlag.signalAll(); } finally { lock.unlock(); } } }; public boolean await(long timeout) throws InterruptedException { try { lock.lock(); if(timeout==0) trueFlag.await(); else trueFlag.await(timeout, TimeUnit.MILLISECONDS); return flag; } finally { flag=false; lock.unlock(); } } public SshListener getSetMethod() { return listener; } }