public void register(CanFlowControl control) { verifyLegalDownstream(control); boolean alreadyExisted = registeredSet.put(control, control) != null; if (!alreadyExisted) { SiteFlowControl handle = new SiteFlowControl(control); control.setUpstreamControl(handle); checkFlowControlState(); } }
public void unregister(CanFlowControl control) { verifyLegalDownstream(control); if (registeredSet.containsKey(control)) { control.setUpstreamControl(FlowControl.NOOP); registeredSet.remove( control); // dupe effort, but control might have called back into us on // setUpstreamControl. blockedSet.remove(control); checkFlowControlState(); } }