public void removeSnapshotWatcher(SnapshotWatcher<? super T> watcher) {
        requireNonNull(watcher, "watcher");
        checkState(!closed, "Watcher %s can't be removed since %s is already closed.",
                   watcher, getClass().getSimpleName());
        if (!eventLoop.inEventLoop()) {
            eventLoop.execute(() -> removeSnapshotWatcher(watcher));
            return;
        }
        if (closed) {
            return;
        }
        snapshotWatchers.remove(watcher);
    }
Removes a watcher which waits for a snapshot update.
xds/src/main/java/com/linecorp/armeria/xds/AbstractRoot.java