mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-14 03:39:05 +01:00
Use a lock to ensure transaction isolation. #272
This commit is contained in:
@@ -172,7 +172,7 @@ class DuplexOutgoingSession implements SyncSession, EventListener {
|
||||
if (interrupted) return;
|
||||
try {
|
||||
Ack a;
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(false);
|
||||
try {
|
||||
a = db.generateAck(txn, contactId, MAX_MESSAGE_IDS);
|
||||
txn.setComplete();
|
||||
@@ -213,7 +213,7 @@ class DuplexOutgoingSession implements SyncSession, EventListener {
|
||||
if (interrupted) return;
|
||||
try {
|
||||
Collection<byte[]> b;
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(false);
|
||||
try {
|
||||
b = db.generateRequestedBatch(txn, contactId,
|
||||
MAX_PACKET_PAYLOAD_LENGTH, maxLatency);
|
||||
@@ -255,7 +255,7 @@ class DuplexOutgoingSession implements SyncSession, EventListener {
|
||||
if (interrupted) return;
|
||||
try {
|
||||
Offer o;
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(false);
|
||||
try {
|
||||
o = db.generateOffer(txn, contactId, MAX_MESSAGE_IDS,
|
||||
maxLatency);
|
||||
@@ -297,7 +297,7 @@ class DuplexOutgoingSession implements SyncSession, EventListener {
|
||||
if (interrupted) return;
|
||||
try {
|
||||
Request r;
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(false);
|
||||
try {
|
||||
r = db.generateRequest(txn, contactId, MAX_MESSAGE_IDS);
|
||||
txn.setComplete();
|
||||
|
||||
@@ -99,7 +99,7 @@ class IncomingSession implements SyncSession, EventListener {
|
||||
|
||||
public void run() {
|
||||
try {
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(false);
|
||||
try {
|
||||
db.receiveAck(txn, contactId, ack);
|
||||
txn.setComplete();
|
||||
@@ -123,7 +123,7 @@ class IncomingSession implements SyncSession, EventListener {
|
||||
|
||||
public void run() {
|
||||
try {
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(false);
|
||||
try {
|
||||
db.receiveMessage(txn, contactId, message);
|
||||
txn.setComplete();
|
||||
@@ -147,7 +147,7 @@ class IncomingSession implements SyncSession, EventListener {
|
||||
|
||||
public void run() {
|
||||
try {
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(false);
|
||||
try {
|
||||
db.receiveOffer(txn, contactId, offer);
|
||||
txn.setComplete();
|
||||
@@ -171,7 +171,7 @@ class IncomingSession implements SyncSession, EventListener {
|
||||
|
||||
public void run() {
|
||||
try {
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(false);
|
||||
try {
|
||||
db.receiveRequest(txn, contactId, request);
|
||||
txn.setComplete();
|
||||
|
||||
@@ -114,7 +114,7 @@ class SimplexOutgoingSession implements SyncSession, EventListener {
|
||||
if (interrupted) return;
|
||||
try {
|
||||
Ack a;
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(false);
|
||||
try {
|
||||
a = db.generateAck(txn, contactId, MAX_MESSAGE_IDS);
|
||||
txn.setComplete();
|
||||
@@ -156,7 +156,7 @@ class SimplexOutgoingSession implements SyncSession, EventListener {
|
||||
if (interrupted) return;
|
||||
try {
|
||||
Collection<byte[]> b;
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(false);
|
||||
try {
|
||||
b = db.generateBatch(txn, contactId,
|
||||
MAX_PACKET_PAYLOAD_LENGTH, maxLatency);
|
||||
|
||||
@@ -83,7 +83,7 @@ class ValidationManagerImpl implements ValidationManager, Service,
|
||||
public void run() {
|
||||
try {
|
||||
Queue<MessageId> unvalidated = new LinkedList<MessageId>();
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(true);
|
||||
try {
|
||||
unvalidated.addAll(db.getMessagesToValidate(txn, c));
|
||||
txn.setComplete();
|
||||
@@ -106,7 +106,7 @@ class ValidationManagerImpl implements ValidationManager, Service,
|
||||
try {
|
||||
Message m = null;
|
||||
Group g = null;
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(true);
|
||||
try {
|
||||
MessageId id = unvalidated.poll();
|
||||
byte[] raw = db.getRawMessage(txn, id);
|
||||
@@ -160,7 +160,7 @@ class ValidationManagerImpl implements ValidationManager, Service,
|
||||
dbExecutor.execute(new Runnable() {
|
||||
public void run() {
|
||||
try {
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(false);
|
||||
try {
|
||||
if (meta == null) {
|
||||
db.setMessageValid(txn, m, c, false);
|
||||
@@ -198,7 +198,7 @@ class ValidationManagerImpl implements ValidationManager, Service,
|
||||
public void run() {
|
||||
try {
|
||||
Group g;
|
||||
Transaction txn = db.startTransaction();
|
||||
Transaction txn = db.startTransaction(true);
|
||||
try {
|
||||
g = db.getGroup(txn, m.getGroupId());
|
||||
txn.setComplete();
|
||||
|
||||
Reference in New Issue
Block a user