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

ca.odell.glazedlists.impl.nio.BlockingRunnable Maven / Gradle / Ivy

The newest version!
/* Glazed Lists                                                 (c) 2003-2006 */
/* http://publicobject.com/glazedlists/                      publicobject.com,*/
/*                                                     O'Dell Engineering Ltd.*/
package ca.odell.glazedlists.impl.nio;

// NIO is used for CTP
/**
 * A Runnable that unblocks the calling thread when it finishes executing.
 *
 * 

If this Runnable throws any {@link RuntimeException}s, they can be accessed * via this API. They will not be propagated up. */ class BlockingRunnable implements Runnable { /** the target runnable */ private Runnable target; /** any exception thrown during invocation */ private RuntimeException problem = null; /** * Creates a BlockingRunnable that runs the specified target while the calling * thread waits. */ public BlockingRunnable(Runnable target) { this.target = target; } /** * Runs the specified task. */ public void run() { // run the target runnable try { target.run(); } catch(RuntimeException e) { this.problem = e; } // wake up the waiting thread synchronized(this) { notify(); } } /** * Get any exception that was thrown during invocation. */ public RuntimeException getInvocationTargetException() { return problem; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy