So ChangeListener.onChange() could still be called after this completes, if setDiscoverables() has already copied the callers list?