protected CompletionState getCompletionState(String owningProcess) { if (ownerToCompletion.containsKey(owningProcess)) return ownerToCompletion.get(owningProcess); CompletionState cs = new CompletionState(getChildCount()); ownerToCompletion.put(owningProcess, cs); return cs; }
private void pingCompletionState(int inputIndex, String owningProcess, boolean isCompletion, InvocationContext context) { CompletionState cs = getCompletionState(owningProcess); cs.inputComplete[inputIndex] = true; if (isCompletion) cs.receivedCompletion = true; if (cs.isComplete()) { cleanUp(owningProcess); ownerToCompletion.remove(owningProcess); if (cs.receivedCompletion) pushCompletion(new Completion(owningProcess, new int[0], context)); } }