+
+ Future<ActorSelection> readyTransaction() {
+ // avoid the creation of a promise and a TransactionOperation
+ if (transactionContext != null) {
+ return transactionContext.readyTransaction();
+ }
+
+ final Promise<ActorSelection> promise = Futures.promise();
+ enqueueTransactionOperation(new TransactionOperation() {
+ @Override
+ public void invoke(TransactionContext newTransactionContext) {
+ promise.completeWith(newTransactionContext.readyTransaction());
+ }
+ });
+
+ return promise.future();
+ }
+
+ public OperationLimiter getLimiter() {
+ return limiter;
+ }
+
+