run update inside a separate thread