for (final Map.Entry<Discoverable, DiscoveryCancellable> entry : discoverables.entries()) { if (closed.get()) { entry.getValue().asyncCancel(); continue;
@Override public void onSuccess(String result) { // Set the sequence node path to cancellable for future cancellation. cancellable.setPath(result); lock.lock(); try { if (!closed.get()) { discoverables.put(discoverable, cancellable); } else { cancellable.asyncCancel(); } } finally { lock.unlock(); } LOG.debug("Service registered: {} {}", discoverable, result); future.set(result); }
final DiscoveryCancellable cancellable = new DiscoveryCancellable(discoverable);
final DiscoveryCancellable cancellable = new DiscoveryCancellable(discoverable);
for (final Map.Entry<Discoverable, DiscoveryCancellable> entry : discoverables.entries()) { if (closed.get()) { entry.getValue().asyncCancel(); continue;
@Override public void close() { if (!closed.compareAndSet(false, true)) { return; } // Stop the registration retry executor retryExecutor.shutdownNow(); // Cancel the connection watcher watcherCancellable.cancel(); // Cancel all registered services List<ListenableFuture<?>> futures = new ArrayList<>(); lock.lock(); try { for (Map.Entry<Discoverable, DiscoveryCancellable> entry : discoverables.entries()) { LOG.debug("Un-registering service {} - {}", entry.getKey().getName(), entry.getKey().getSocketAddress()); futures.add(entry.getValue().asyncCancel()); } } finally { lock.unlock(); } try { Futures.successfulAsList(futures).get(); LOG.debug("All services unregistered"); } catch (Exception e) { // This is not expected to happen LOG.warn("Unexpected exception when waiting for all services to get unregistered", e); } // Cancel all services being watched services.invalidateAll(); }
@Override public void close() { if (!closed.compareAndSet(false, true)) { return; } // Stop the registration retry executor retryExecutor.shutdownNow(); // Cancel the connection watcher watcherCancellable.cancel(); // Cancel all registered services List<ListenableFuture<?>> futures = new ArrayList<>(); lock.lock(); try { for (Map.Entry<Discoverable, DiscoveryCancellable> entry : discoverables.entries()) { LOG.debug("Un-registering service {} - {}", entry.getKey().getName(), entry.getKey().getSocketAddress()); futures.add(entry.getValue().asyncCancel()); } } finally { lock.unlock(); } try { Futures.successfulAsList(futures).get(); LOG.debug("All services unregistered"); } catch (Exception e) { // This is not expected to happen LOG.warn("Unexpected exception when waiting for all services to get unregistered", e); } // Cancel all services being watched services.invalidateAll(); }
@Override public void onSuccess(String result) { // Set the sequence node path to cancellable for future cancellation. cancellable.setPath(result); lock.lock(); try { if (!closed.get()) { discoverables.put(discoverable, cancellable); } else { cancellable.asyncCancel(); } } finally { lock.unlock(); } LOG.debug("Service registered: {} {}", discoverable, result); future.set(result); }
@Override public void cancel() { Futures.getUnchecked(asyncCancel()); LOG.debug("Service unregistered: {} {}", discoverable, path); }
@Override public void cancel() { Futures.getUnchecked(asyncCancel()); LOG.debug("Service unregistered: {} {}", discoverable, path); }