*) new method allowing the updater to wait until yacy has finished startup

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3662 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
theli 18 years ago
parent 111ba9e359
commit e8610f049a

@ -141,8 +141,23 @@ public final class yacy {
private static final String copyright = "[ YaCy v" + vString + ", build " + vDATE + " by Michael Christen / www.yacy.net ]";
private static final String hline = "-------------------------------------------------------------------------------";
static serverSemaphore sbSync = new serverSemaphore(0);
static plasmaSwitchboard sb = null;
/**
* a reference to the {@link plasmaSwitchboard} created by the
* {@link yacy#startup(String, long, long)} method.
*/
private static plasmaSwitchboard sb = null;
/**
* Semaphore needed by {@link yacy#setUpdaterCallback(serverUpdaterCallback)} to block
* until the {@link plasmaSwitchboard }object was created.
*/
private static serverSemaphore sbSync = new serverSemaphore(0);
/**
* Semaphore needed by {@link yacy#waitForFinishedStartup()} to block
* until startup has finished
*/
private static serverSemaphore startupFinishedSync = new serverSemaphore(0);
/**
* Converts combined version-string to a pretty string, e.g. "0.435/01818" or "dev/01818" (development version) or "dev/00000" (in case of wrong input)
@ -441,6 +456,9 @@ public final class yacy {
sb.setConfig("memoryTotalAfterInitAGC", Runtime.getRuntime().totalMemory());
//} catch (ConcurrentModificationException e) {}
// signal finished startup
startupFinishedSync.V();
// wait for server shutdown
try {
sb.waitForShutdown();
@ -472,6 +490,8 @@ public final class yacy {
}
} catch (Exception ee) {
serverLog.logSevere("STARTUP", "FATAL ERROR: " + ee.getMessage(),ee);
} finally {
startupFinishedSync.notifyAll();
}
serverLog.logConfig("SHUTDOWN", "goodbye. (this is the last line)");
//try {
@ -534,6 +554,15 @@ public final class yacy {
sbSync.V();
}
/**
* Function allowing the updater to block until the startup has finished
* @throws InterruptedException
*/
public static void waitForFinishedStartup() throws InterruptedException {
startupFinishedSync.P();
startupFinishedSync.V();
}
/**
* Call the shutdown-page of YaCy to tell it to shut down. This method is
* called if you start yacy with the argument -shutdown.

Loading…
Cancel
Save