But it could be costly if list update is complex operation. Then as @dalexander said, prepare new list and replace the old one. Make sure you make a local copy of a reference to a list in your read operations, so that if you make several read operations on a list, you do it on a same list.