selectPreference ensured to run once at most