提交 46c1e5e6 authored 作者: Thomas Mueller's avatar Thomas Mueller

Simplify synchronization (should also be a bit faster).

上级 ff1d23ff
...@@ -1159,13 +1159,11 @@ public class Database implements DataHandler { ...@@ -1159,13 +1159,11 @@ public class Database implements DataHandler {
} }
} }
private void closeFiles() { private synchronized void closeFiles() {
try { try {
synchronized (this) { if (pageStore != null) {
if (pageStore != null) { pageStore.close();
pageStore.close(); pageStore = null;
pageStore = null;
}
} }
} catch (DbException e) { } catch (DbException e) {
trace.error(e, "close"); trace.error(e, "close");
...@@ -1654,13 +1652,11 @@ public class Database implements DataHandler { ...@@ -1654,13 +1652,11 @@ public class Database implements DataHandler {
* @param session the session * @param session the session
* @param transaction the name of the transaction * @param transaction the name of the transaction
*/ */
void prepareCommit(Session session, String transaction) { synchronized void prepareCommit(Session session, String transaction) {
if (readOnly) { if (readOnly) {
return; return;
} }
synchronized (this) { pageStore.prepareCommit(session, transaction);
pageStore.prepareCommit(session, transaction);
}
} }
/** /**
...@@ -1668,28 +1664,24 @@ public class Database implements DataHandler { ...@@ -1668,28 +1664,24 @@ public class Database implements DataHandler {
* *
* @param session the session * @param session the session
*/ */
void commit(Session session) { synchronized void commit(Session session) {
if (readOnly) { if (readOnly) {
return; return;
} }
synchronized (this) { if (pageStore != null) {
if (pageStore != null) { pageStore.commit(session);
pageStore.commit(session);
}
session.setAllCommitted();
} }
session.setAllCommitted();
} }
/** /**
* Flush all pending changes to the transaction log. * Flush all pending changes to the transaction log.
*/ */
public void flush() { public synchronized void flush() {
synchronized (this) { if (readOnly || pageStore == null) {
if (readOnly || pageStore == null) { return;
return;
}
pageStore.flushLog();
} }
pageStore.flushLog();
} }
public void setEventListener(DatabaseEventListener eventListener) { public void setEventListener(DatabaseEventListener eventListener) {
...@@ -1760,13 +1752,11 @@ public class Database implements DataHandler { ...@@ -1760,13 +1752,11 @@ public class Database implements DataHandler {
* Synchronize the files with the file system. This method is called when * Synchronize the files with the file system. This method is called when
* executing the SQL statement CHECKPOINT SYNC. * executing the SQL statement CHECKPOINT SYNC.
*/ */
public void sync() { public synchronized void sync() {
synchronized (this) { if (readOnly || pageStore == null) {
if (readOnly || pageStore == null) { return;
return;
}
pageStore.sync();
} }
pageStore.sync();
} }
public int getMaxMemoryRows() { public int getMaxMemoryRows() {
......
...@@ -412,11 +412,9 @@ public class SessionRemote extends SessionWithState implements DataHandler { ...@@ -412,11 +412,9 @@ public class SessionRemote extends SessionWithState implements DataHandler {
switchOffCluster(); switchOffCluster();
} }
public CommandInterface prepareCommand(String sql, int fetchSize) { public synchronized CommandInterface prepareCommand(String sql, int fetchSize) {
synchronized (this) { checkClosed();
checkClosed(); return new CommandRemote(this, transferList, sql, fetchSize);
return new CommandRemote(this, transferList, sql, fetchSize);
}
} }
/** /**
......
...@@ -168,12 +168,10 @@ public class Column { ...@@ -168,12 +168,10 @@ public class Column {
* @param row the row * @param row the row
* @return the value * @return the value
*/ */
Value computeValue(Session session, Row row) { synchronized Value computeValue(Session session, Row row) {
synchronized (this) { computeTableFilter.setSession(session);
computeTableFilter.setSession(session); computeTableFilter.set(row);
computeTableFilter.set(row); return defaultExpression.getValue(session);
return defaultExpression.getValue(session);
}
} }
/** /**
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论