diff --git a/pdex/src/processing/mode/experimental/ErrorCheckerService.java b/pdex/src/processing/mode/experimental/ErrorCheckerService.java index a69b4d5d9..631d1d0fb 100644 --- a/pdex/src/processing/mode/experimental/ErrorCheckerService.java +++ b/pdex/src/processing/mode/experimental/ErrorCheckerService.java @@ -308,6 +308,12 @@ public class ErrorCheckerService implements Runnable{ * last runManualErrorCheck() call. */ private final static long errorCheckInterval = 500; + + /** + * Bypass sleep time + */ + + private volatile boolean noSleep = false; /** * The way the error checking happens is: DocumentListeners are added @@ -334,7 +340,13 @@ public class ErrorCheckerService implements Runnable{ while (!stopThread.get()) { try { // Take a nap. - Thread.sleep(sleepTime); + if(!noSleep) { + Thread.sleep(sleepTime); + } + else { + noSleep = false; + log("Didn't sleep!"); + } } catch (Exception e) { log("Oops! [ErrorCheckerThreaded]: " + e); // e.printStackTrace(); @@ -426,6 +438,12 @@ public class ErrorCheckerService implements Runnable{ lastErrorCheckCall = System.currentTimeMillis(); } + public void quickErrorCheck() { + //TODO: Experimental, lookout for threading related issues + noSleep = true; + log("quickErrorCheck()"); + } + protected SketchChangedListener sketchChangedListener; protected class SketchChangedListener implements DocumentListener{ diff --git a/pdex/src/processing/mode/experimental/ExperimentalMode.java b/pdex/src/processing/mode/experimental/ExperimentalMode.java index 1710f0455..bf7dbf3bd 100755 --- a/pdex/src/processing/mode/experimental/ExperimentalMode.java +++ b/pdex/src/processing/mode/experimental/ExperimentalMode.java @@ -335,6 +335,8 @@ public class ExperimentalMode extends JavaMode { @Override public Runner handleRun(Sketch sketch, RunnerListener listener) throws SketchException { + final DebugEditor editor = (DebugEditor)listener; + editor.errorCheckerService.quickErrorCheck(); if (enableTweak) { enableTweak = false; return handleTweakPresentOrRun(sketch, listener, false); @@ -359,6 +361,8 @@ public class ExperimentalMode extends JavaMode { @Override public Runner handlePresent(Sketch sketch, RunnerListener listener) throws SketchException { + final DebugEditor editor = (DebugEditor)listener; + editor.errorCheckerService.quickErrorCheck(); if (enableTweak) { enableTweak = false; return handleTweakPresentOrRun(sketch, listener, true);