@Override public Task<?> deactivateAsync() { local.values().forEach(r -> r.dispose()); local.clear(); return super.deactivateAsync(); } }
@Override public Task<?> deactivateAsync() { await(super.deactivateAsync()); /* int size = state().subscribers.size(); // check if each subscriber is still alive. await(Task.allOf(state().subscribers.entrySet().stream() .map(entry -> checkAlive(entry.getKey(), entry.getValue())))); if (state().subscribers.isEmpty()) { return clearState(); } else if (size != state().subscribers.size()) { return writeState(); } */ if (state().subscribers.isEmpty()) { return clearState(); } return Task.done(); }
protected Task<Void> deactivate(final T actor) { await(Task.allOf(runtime.getAllExtensions(LifetimeExtension.class).stream().map(v -> v.preDeactivation(actor)))); try { await(actor.deactivateAsync()); } catch (final Throwable ex) { getLogger().error("Error on actor " + reference + " deactivation", ex); } clearTimers(); await(clearStreamSubscriptions()); await(Task.allOf(runtime.getAllExtensions(LifetimeExtension.class).stream().map(v -> v.postDeactivation(actor)))); return Task.done(); }