catch concurrent modifications when redrawing visualizer