Upgraded to latest Mulitverse SNAPSHOT
This commit is contained in:
parent
2f12275a3c
commit
4318d68af4
5 changed files with 16 additions and 11 deletions
|
|
@ -21,7 +21,7 @@ import se.scalablesolutions.akka.util.Logging
|
|||
|
||||
import org.codehaus.aspectwerkz.proxy.Uuid
|
||||
|
||||
import org.multiverse.utils.ThreadLocalTransaction._
|
||||
import org.multiverse.api.ThreadLocalTransaction._
|
||||
|
||||
/**
|
||||
* Mix in this trait to give an actor TransactionRequired semantics.
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import se.scalablesolutions.akka.util.Logging
|
|||
|
||||
import org.multiverse.api.{Stm, Transaction => MultiverseTransaction}
|
||||
import org.multiverse.api.GlobalStmInstance.getGlobalStmInstance
|
||||
import org.multiverse.utils.ThreadLocalTransaction._
|
||||
import org.multiverse.api.ThreadLocalTransaction._
|
||||
import org.multiverse.templates.OrElseTemplate
|
||||
|
||||
import scala.collection.mutable.HashMap
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import se.scalablesolutions.akka.util.Logging
|
|||
|
||||
import scala.collection.mutable.HashSet
|
||||
|
||||
import org.multiverse.utils.ThreadLocalTransaction._
|
||||
import org.multiverse.api.ThreadLocalTransaction._
|
||||
|
||||
class StmException(msg: String) extends RuntimeException(msg)
|
||||
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ object TransactionalRef {
|
|||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||
*/
|
||||
class TransactionalRef[T] extends Transactional {
|
||||
import org.multiverse.utils.ThreadLocalTransaction._
|
||||
import org.multiverse.api.ThreadLocalTransaction._
|
||||
|
||||
private[this] val ref: Ref[T] = atomic { new Ref }
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,18 @@
|
|||
package se.scalablesolutions.akka.stm;
|
||||
|
||||
import org.multiverse.templates.AbortedException;
|
||||
import static org.multiverse.api.GlobalStmInstance.getGlobalStmInstance;
|
||||
import org.multiverse.api.Stm;
|
||||
import static org.multiverse.api.ThreadLocalTransaction.getThreadLocalTransaction;
|
||||
import static org.multiverse.api.ThreadLocalTransaction.setThreadLocalTransaction;
|
||||
import org.multiverse.api.Transaction;
|
||||
import org.multiverse.api.TransactionStatus;
|
||||
import org.multiverse.api.exceptions.CommitFailureException;
|
||||
import org.multiverse.api.exceptions.LoadException;
|
||||
import org.multiverse.api.exceptions.RetryError;
|
||||
import org.multiverse.api.exceptions.TooManyRetriesException;
|
||||
import static org.multiverse.api.GlobalStmInstance.getGlobalStmInstance;
|
||||
import static org.multiverse.utils.ThreadLocalTransaction.getThreadLocalTransaction;
|
||||
import static org.multiverse.utils.ThreadLocalTransaction.setThreadLocalTransaction;
|
||||
import org.multiverse.templates.AbortedException;
|
||||
import org.multiverse.utils.latches.CheapLatch;
|
||||
import org.multiverse.utils.latches.Latch;
|
||||
|
||||
import static java.lang.String.format;
|
||||
import java.util.logging.Logger;
|
||||
|
|
@ -259,7 +261,9 @@ public abstract class AtomicTemplate<E> {
|
|||
postCommit();
|
||||
return result;
|
||||
} catch (RetryError e) {
|
||||
t.abortAndWaitForRetry();
|
||||
Latch latch = new CheapLatch();
|
||||
t.abortAndRegisterRetryLatch(latch);
|
||||
latch.awaitUninterruptible();
|
||||
//since the abort is already done, no need to do it again.
|
||||
abort = false;
|
||||
} catch (CommitFailureException ex) {
|
||||
|
|
@ -274,7 +278,8 @@ public abstract class AtomicTemplate<E> {
|
|||
if (abort) {
|
||||
t.abort();
|
||||
if (reset) {
|
||||
t.restart();
|
||||
t = t.abortAndReturnRestarted();
|
||||
setTransaction(t);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -333,4 +338,4 @@ public abstract class AtomicTemplate<E> {
|
|||
return (Exception) super.getCause();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue