
Joaquin M Lopez Munoz <joaquin <at> tid.es> writes:
Anatoly Pinchuk <appinchuk <at> gmail.com> writes:
Possible traversal and modifications of a safe container iterators list inside safe_mode::detach_equivalent_iterators function are not protected with locking like the following one in safe_iterator_base::detach function [...]
Hi Anatoly,
Yep, safe_mode::detach_equivalent_iterators is not mutex-protected, but this is not an error: this function is called only in the context of erase and update operations, where no concurrent access to the container is allowed.
Hi again, Maybe I answered too fast. Considering the following scenario: Thread A: iterator it1=it2; Thread B: c.erase(...); we have a race as iterator assigning meddles with the internal safe iterator list. I tend to consider the scnario above as legitimate, so maybe we have an issue here. Thanks for reporting. Let me study this a little further, I've created a ticket for it at: https://svn.boost.org/trac/boost/ticket/3462 Joaquín M López Muñoz Telefónica, Investigación y Desarrollo