+
package edu.berkeley.fleet.interpreter;
import edu.berkeley.fleet.api.*;
import edu.berkeley.fleet.two.*;
// flushing logic (must come between dock servicing and subclass)
boolean someflushing = false;
boolean allflushing = true;
+ boolean someempty = false;
for(InterpreterDock d : docks.values()) {
if (!d.isInputDock()) continue;
if (d.flushing) someflushing = true;
else allflushing = false;
+ if (!d.flushing && !d.dataReadyForShip) someempty = true;
}
- if (allflushing) {
+ if (allflushing && someflushing) {
for(InterpreterDock d : docks.values())
if (d.isInputDock())
d.flushing = false;
return;
- } else if (someflushing) {
+ } else if (someflushing && !someempty) {
for(InterpreterDock d : docks.values())
if (d.isInputDock() && !d.flushing && d.dataReadyForShip)
d.dataReadyForShip = false;