while (!exitRequested()) { if (needToRestart()) { if (nrFailuresRestarting < MAX_RESTART_ATTEMPTS) { logger.info("Restarting module."); try { close(); open(); setNeedToRestart(false); logger.info("Module restarted"); doNotifyAll(); nrFailuresRestarting = 0; // succeeded } catch (Exception e) { setNeedToRestart(false); doNotifyAll(); doWait(); logger.info("RestarterThread was woken up.");
public void run() { while (!exitRequested()) { while (needToRestart()) { doWait(); if (!needToRestart()) logger.info("ProcessingThread noticed restart done."); if (haveWaitingRequests()) { ExternalModuleRequest request = getNextRequest(); logger.info("Now processing next request."); try { MaryData output = externalIO(request.getInput()); request.setOutput(output); doNotifyAll(); // let them know we're done } catch (Exception e) { logger.error("Problem occurred during I/O with external module. " + "Requesting module restart.", e); setNeedToRestart(true); doNotifyAll(); doWait(); logger.debug("ProcessingThread was woken up.");
assert !needToRestart(); logger.info("Writing to module."); d.writeTo(to()); MaryData result = new MaryData(outputType(), d.getLocale()); result.readFrom(from(), outputType().endMarker()); logger.info("Read complete."); return result;
public synchronized void startup() throws Exception { assert state == MODULE_OFFLINE; setExitRequested(false); open(); setNeedToRestart(false); logger = MaryUtils.getLogger(name()); logger.info("Module started (" + inputType() + "->" + outputType() + ", locale " + getLocale() + ")."); state = MODULE_RUNNING; }
public void shutdown() { assert state == MODULE_RUNNING; close(); setExitRequested(true); doNotifyAll(); try { processingThread.join(); restarterThread.join(); } catch (InterruptedException e) { logger.info(e); } logger.info("Module shut down."); state = MODULE_OFFLINE; }
logger.info("Adding request"); ExternalModuleRequest request = new ExternalModuleRequest(d); addRequest(request); doNotifyAll(); logger.info("Now waiting for request to be processed"); long tStart = System.currentTimeMillis(); while (!request.problemOccurred() && request.getOutput() == null && System.currentTimeMillis() - tStart < timeLimit) { doWait(timeLimit); logger.error("Timeout occurred. Requesting module restart and rescheduling request."); setNeedToRestart(true); removeRequest(request); request.setProblemOccurred(false); addRequest(request); doNotifyAll(); logger.info("Waiting for request to be processed (2nd try)"); tStart = System.currentTimeMillis(); while (!request.problemOccurred() && request.getOutput() == null && System.currentTimeMillis() - tStart < timeLimit) { doWait(timeLimit); setNeedToRestart(true); removeRequest(request); throw new IOException("Module " + name() + " cannot process.");
/** * Perform a power-on self test by processing some example input data. * * @throws Error * if the module does not work properly. */ public synchronized void powerOnSelfTest() throws Error { assert state == MODULE_RUNNING; logger.info("Starting power-on self test."); try { MaryData in = new MaryData(inputType, getLocale()); String example = inputType.exampleText(getLocale()); if (example != null) { in.readFrom(new StringReader(example)); if (outputType.equals(MaryDataType.get("AUDIO"))) in.setAudioFileFormat(new AudioFileFormat(AudioFileFormat.Type.WAVE, Voice.AF22050, AudioSystem.NOT_SPECIFIED)); process(in); } else { logger.debug("No example text -- no power-on self test!"); } } catch (Throwable t) { throw new Error("Module " + name + ": Power-on self test failed.", t); } logger.info("Power-on self test complete."); }
@Deprecated public MaryDataType inputType() { return getInputType(); }
public synchronized void startup() throws Exception { assert state == MODULE_OFFLINE; setExitRequested(false); open(); setNeedToRestart(false); logger = MaryUtils.getLogger(name()); logger.info("Module started (" + inputType() + "->" + outputType() + ", locale " + getLocale() + ")."); state = MODULE_RUNNING; }
logger.info("Adding request"); ExternalModuleRequest request = new ExternalModuleRequest(d); addRequest(request); doNotifyAll(); logger.info("Now waiting for request to be processed"); long tStart = System.currentTimeMillis(); while (!request.problemOccurred() && request.getOutput() == null && System.currentTimeMillis() - tStart < timeLimit) { doWait(timeLimit); logger.error("Timeout occurred. Requesting module restart and rescheduling request."); setNeedToRestart(true); removeRequest(request); request.setProblemOccurred(false); addRequest(request); doNotifyAll(); logger.info("Waiting for request to be processed (2nd try)"); tStart = System.currentTimeMillis(); while (!request.problemOccurred() && request.getOutput() == null && System.currentTimeMillis() - tStart < timeLimit) { doWait(timeLimit); setNeedToRestart(true); removeRequest(request); throw new IOException("Module " + name() + " cannot process.");
public void shutdown() { assert state == MODULE_RUNNING; close(); setExitRequested(true); doNotifyAll(); try { processingThread.join(); restarterThread.join(); } catch (InterruptedException e) { logger.info(e); } logger.info("Module shut down."); state = MODULE_OFFLINE; }
/** * Perform a power-on self test by processing some example input data. * * @throws Error * if the module does not work properly. */ public synchronized void powerOnSelfTest() throws Error { assert state == MODULE_RUNNING; logger.info("Starting power-on self test."); try { MaryData in = new MaryData(inputType, getLocale()); String example = inputType.exampleText(getLocale()); if (example != null) { in.readFrom(new StringReader(example)); if (outputType.equals(MaryDataType.get("AUDIO"))) in.setAudioFileFormat(new AudioFileFormat(AudioFileFormat.Type.WAVE, Voice.AF22050, AudioSystem.NOT_SPECIFIED)); process(in); } else { logger.debug("No example text -- no power-on self test!"); } } catch (Throwable t) { throw new Error("Module " + name + ": Power-on self test failed.", t); } logger.info("Power-on self test complete."); }
@Deprecated public MaryDataType inputType() { return getInputType(); }
public void run() { while (!exitRequested()) { while (needToRestart()) { doWait(); if (!needToRestart()) logger.info("ProcessingThread noticed restart done."); if (haveWaitingRequests()) { ExternalModuleRequest request = getNextRequest(); logger.info("Now processing next request."); try { MaryData output = externalIO(request.getInput()); request.setOutput(output); doNotifyAll(); // let them know we're done } catch (Exception e) { logger.error("Problem occurred during I/O with external module. " + "Requesting module restart.", e); setNeedToRestart(true); doNotifyAll(); doWait(); logger.debug("ProcessingThread was woken up.");
public synchronized void startup() throws Exception { assert state == MODULE_OFFLINE; setExitRequested(false); open(); setNeedToRestart(false); logger = MaryUtils.getLogger(name()); logger.info("Module started (" + inputType() + "->" + outputType() + ", locale " + getLocale() + ")."); state = MODULE_RUNNING; }
while (!exitRequested()) { if (needToRestart()) { if (nrFailuresRestarting < MAX_RESTART_ATTEMPTS) { logger.info("Restarting module."); try { close(); open(); setNeedToRestart(false); logger.info("Module restarted"); doNotifyAll(); nrFailuresRestarting = 0; // succeeded } catch (Exception e) { setNeedToRestart(false); doNotifyAll(); doWait(); logger.info("RestarterThread was woken up.");
logger.info("Adding request"); ExternalModuleRequest request = new ExternalModuleRequest(d); addRequest(request); doNotifyAll(); logger.info("Now waiting for request to be processed"); long tStart = System.currentTimeMillis(); while (!request.problemOccurred() && request.getOutput() == null && System.currentTimeMillis() - tStart < timeLimit) { doWait(timeLimit); logger.error("Timeout occurred. Requesting module restart and rescheduling request."); setNeedToRestart(true); removeRequest(request); request.setProblemOccurred(false); addRequest(request); doNotifyAll(); logger.info("Waiting for request to be processed (2nd try)"); tStart = System.currentTimeMillis(); while (!request.problemOccurred() && request.getOutput() == null && System.currentTimeMillis() - tStart < timeLimit) { doWait(timeLimit); setNeedToRestart(true); removeRequest(request); throw new IOException("Module " + name() + " cannot process.");
assert !needToRestart(); logger.info("Writing to module."); d.writeTo(to()); MaryData result = new MaryData(outputType(), d.getLocale()); result.readFrom(from(), outputType().endMarker()); logger.info("Read complete."); return result;
public void shutdown() { assert state == MODULE_RUNNING; close(); setExitRequested(true); doNotifyAll(); try { processingThread.join(); restarterThread.join(); } catch (InterruptedException e) { logger.info(e); } logger.info("Module shut down."); state = MODULE_OFFLINE; }
/** * Perform a power-on self test by processing some example input data. * * @throws Error * if the module does not work properly. */ public synchronized void powerOnSelfTest() throws Error { assert state == MODULE_RUNNING; logger.info("Starting power-on self test."); try { MaryData in = new MaryData(inputType, getLocale()); String example = inputType.exampleText(getLocale()); if (example != null) { in.readFrom(new StringReader(example)); if (outputType.equals(MaryDataType.get("AUDIO"))) in.setAudioFileFormat(new AudioFileFormat(AudioFileFormat.Type.WAVE, Voice.AF22050, AudioSystem.NOT_SPECIFIED)); process(in); } else { logger.debug("No example text -- no power-on self test!"); } } catch (Throwable t) { throw new Error("Module " + name + ": Power-on self test failed.", t); } logger.info("Power-on self test complete."); }