Mercurial > hg > blitz_condensed
diff src/org/dancres/blitz/txn/CheckpointTask.java @ 0:3dc0c5604566
Initial checkin of blitz 2.0 fcs - no installer yet.
author | Dan Creswell <dan.creswell@gmail.com> |
---|---|
date | Sat, 21 Mar 2009 11:00:06 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/dancres/blitz/txn/CheckpointTask.java Sat Mar 21 11:00:06 2009 +0000 @@ -0,0 +1,45 @@ +package org.dancres.blitz.txn; + +import java.io.IOException; + +import java.util.logging.Level; + +import org.dancres.blitz.task.Task; + +class CheckpointTask implements Task { + private boolean isDone = false; + private IOException theIOE = null; + + public void run() { + try { + TxnManager.get().requestAsyncCheckpoint(); + } catch (IOException anIOE) { + TxnManager.theLogger.log(Level.SEVERE, + "Checkpoint failed to complete", + anIOE); + theIOE = anIOE; + } + + synchronized(this) { + isDone = true; + notify(); + } + } + + void waitForCompletion() throws IOException { + synchronized(this) { + while (!isDone) { + try { + wait(); + } catch (InterruptedException anIE) { + TxnManager.theLogger.log(Level.SEVERE, + "Failed to wait for checkpoint completion", + anIE); + } + } + + if (theIOE != null) + throw theIOE; + } + } +}