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

Simplify synchronization (should also be a bit faster).

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