Interpreter.java: periodically invoke dumpState if requested
authorAdam Megacz <adam@megacz.com>
Sun, 30 Aug 2009 00:18:07 +0000 (17:18 -0700)
committerAdam Megacz <adam@megacz.com>
Sun, 30 Aug 2009 00:18:07 +0000 (17:18 -0700)
src/edu/berkeley/fleet/interpreter/Interpreter.java

index a12906e..7ff19cc 100644 (file)
@@ -205,8 +205,20 @@ public class Interpreter extends FleetTwoFleet {
         protected void _terminate() { }
         public void run() {
             try {
+                long lastStatus = System.currentTimeMillis();
                 while(!isTerminated()) {
                     flush();
+                    long now = System.currentTimeMillis();
+                    if (now - lastStatus > 2000 && !Log.quiet &&
+                        !"false".equals(System.getProperty("fleet.log.state","false"))) {
+                        System.out.println("== State Dump ===================================================");
+                        for(InterpreterShip ship : ships.values())
+                            for(Dock d : ship)
+                                synchronized(this) {
+                                    ((InterpreterDock)d).dumpState();
+                                }
+                        lastStatus = now;
+                    }
                 }
                 for(InterpreterShip ship : ships.values())
                     ship.reset();