use condition lock to improve redraw performance