org.infinispan.util.concurrent
Class SynchronizedRestarter

java.lang.Object
  extended by org.infinispan.util.concurrent.SynchronizedRestarter

public class SynchronizedRestarter
extends Object

A class that handles restarts of components via multiple threads. Specifically, if a component needs to be restarted and several threads may demand a restart but only one thread should be allowed to restart the component, then use this class.

What this class guarantees is that several threads may come in while a component is being restarted, but they will block until the restart is complete.

This is different from other techniques in that:

This implementation combines a compare-and-swap to detect a concurrent restart, as well as registering for notification for when the restart completes and then parking the thread if the CAS variable still indicates a restart in progress, and finally deregistering itself in the end.

Since:
4.0
Author:
Manik Surtani

Constructor Summary
SynchronizedRestarter()
           
 
Method Summary
 void restartComponent(Lifecycle component)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SynchronizedRestarter

public SynchronizedRestarter()
Method Detail

restartComponent

public void restartComponent(Lifecycle component)
                      throws Exception
Throws:
Exception

-->

Copyright © 2011 JBoss, a division of Red Hat. All Rights Reserved.