public void stop() throws Exception { if (closed()) return; if (later != null && later.closed()) { // Our later finished meter.add(later.result().stripe.size); // If an exception closed later, throw it later = null; // Discard the closed later, now in() and out() will work } if (meter.isDone()) close(); // All done }
public boolean isEmpty() { return later == null && // No later using our bins in.isEmpty() && // No data meter.isEmpty(); // No responsibility to do more }
public void start() { if (closed()) return; if (!meter.isDone() && later == null && in.hasData()) later = new UploadTask(update, socket, meter.remain(), in); }