org.infinispan.util.concurrent.BlockingRunnable Maven / Gradle / Ivy
package org.infinispan.util.concurrent;
/**
* A special Runnable (for the particular case of Total Order) that is only sent to a thread when it is ready to be
* executed without blocking the thread
*
* Use case: - in Total Order, when the prepare is delivered, the runnable blocks waiting for the previous conflicting
* transactions to be finished. In a normal executor service, this will take a thread and that thread will be blocked.
* This way, the runnable waits on the queue and not in the Thread
*
* Used in {@code org.infinispan.util.concurrent.BlockingTaskAwareExecutorService}
*
* @author Pedro Ruivo
* @since 5.3
*/
public interface BlockingRunnable extends Runnable {
/**
* @return true if this Runnable is ready to be executed without blocking
*/
boolean isReady();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy