use of com.arjuna.ats.txoj.Lock in project narayana by jbosstm.
the class AtomicObject method set.
public void set(int value) throws TestException {
AtomicAction A = new AtomicAction();
A.begin();
if (setlock(new Lock(LockMode.WRITE), retry) == LockResult.GRANTED) {
state = value;
if (A.commit() != ActionStatus.COMMITTED)
throw new TestException("Action commit error.");
else
return;
} else {
if (printDebug)
System.out.println("Error - could not set write lock.");
}
A.abort();
throw new TestException("Write lock error.");
}
use of com.arjuna.ats.txoj.Lock in project narayana by jbosstm.
the class AtomicObject method get.
public int get() throws TestException {
AtomicAction A = new AtomicAction();
int value = -1;
A.begin();
if (setlock(new Lock(LockMode.READ), retry) == LockResult.GRANTED) {
value = state;
if (A.commit() == ActionStatus.COMMITTED)
return value;
else
throw new TestException("Action commit error.");
} else {
if (printDebug)
System.out.println("Error - could not set read lock.");
}
A.abort();
throw new TestException("Read lock error.");
}
use of com.arjuna.ats.txoj.Lock in project narayana by jbosstm.
the class AtomicObjectLog method incr.
public void incr(int value) throws TestException {
AtomicAction A = new AtomicAction();
A.begin();
if (setlock(new Lock(LockMode.WRITE), 0) == LockResult.GRANTED) {
state += value;
if (A.commit() != ActionStatus.COMMITTED)
throw new TestException("Action commit error.");
else
return;
} else {
if (printDebug)
System.out.println("Error - could not set write lock.");
}
A.abort();
throw new TestException("Write lock error.");
}
use of com.arjuna.ats.txoj.Lock in project narayana by jbosstm.
the class AtomicObjectLog method get.
public int get() throws TestException {
AtomicAction A = new AtomicAction();
int value = -1;
A.begin();
if (setlock(new Lock(LockMode.READ), 0) == LockResult.GRANTED) {
value = state;
if (A.commit() == ActionStatus.COMMITTED)
return value;
else
throw new TestException("Action commit error.");
} else {
if (printDebug)
System.out.println("Error - could not set read lock.");
}
A.abort();
throw new TestException("Read lock error.");
}
use of com.arjuna.ats.txoj.Lock in project narayana by jbosstm.
the class LockUnitTest method test.
@Test
public void test() throws Exception {
Lock lock = new Lock();
lock = new Lock(LockMode.WRITE);
assertTrue(lock.getAllOwners() != null);
assertEquals(lock.getCurrentStatus(), LockStatus.LOCKFREE);
assertFalse(lock.equals(new Object()));
assertFalse(lock.equals((Object) new Lock()));
assertTrue(lock.equals(lock));
assertTrue(lock.toString() != null);
assertEquals(lock.type(), "/StateManager/Lock");
lock.print(new PrintWriter(new ByteArrayOutputStream()));
}
Aggregations