@Override public void registerConsumers(int numConsumers) { // we don't want double spending here if (registered.get()) { if (isDebug) log.info("Master thread locks at RC"); while (registered.get()) { LockSupport.parkNanos(100L); if (throwable.isTriggered()) throw new RuntimeException(throwable.get()); } if (isDebug) log.info("Master thread unlocks at RC"); } // we're passing number of consumers for current session to externalSource, if applicable if (externalSource != null && externalSource instanceof Registerable) ((Registerable) externalSource).registerConsumers(numConsumers); currentConsumers.set(numConsumers); registered.set(true); }
@Override public void fallbackToSingleConsumerMode(boolean reallyFallback) { if (externalSource != null && externalSource instanceof Registerable) ((Registerable) externalSource).fallbackToSingleConsumerMode(reallyFallback); bypassMode.set(reallyFallback); }
((Registerable) gradientsAccumulator).registerConsumers(workers); ((Registerable) gradientsAccumulator).registerConsumers(locker.get());
((Registerable) gradientsAccumulator).registerConsumers(workers); ((Registerable) gradientsAccumulator).registerConsumers(locker.get());
((Registerable) gradientsAccumulator).registerConsumers(workers); ((Registerable) gradientsAccumulator).registerConsumers(locker.get());
((Registerable) gradientsAccumulator).registerConsumers(workers); ((Registerable) gradientsAccumulator).registerConsumers(locker.get());