PR libstdc++/91910 fix data race in Debug Mode destructors

Fix data race when _Safe_iterator_base::_M_detach() runs concurrently with
the _Safe_container_base destructor.

Backport from mainline
2019-09-27  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/91910
	* src/c++11/debug.cc (_Safe_iterator_base::_M_detach()): Load pointer
	atomically and lock the mutex before accessing the sequence.
	(_Safe_local_iterator_base::_M_detach()): Likewise.
	(_Safe_iterator_base::_M_reset()): Clear _M_sequence atomically.
2 files changed