check active before updating text (vs async race)