aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/interface.c
diff options
context:
space:
mode:
authorFrançois Dumont <fdumont@gcc.gnu.org>2020-02-29 18:22:55 +0100
committerGiuliano Belinassi <giuliano.belinassi@usp.br>2020-08-17 12:58:14 -0300
commit1539945e391472bfa5ef77522279ab1e040c09d1 (patch)
treecaa0c24850710ec8e67b8088d17a1ab7b147d179 /gcc/fortran/interface.c
parent9b0af11b1e799a24015a69e5f1dca9a049809687 (diff)
downloadgcc-1539945e391472bfa5ef77522279ab1e040c09d1.zip
gcc-1539945e391472bfa5ef77522279ab1e040c09d1.tar.gz
gcc-1539945e391472bfa5ef77522279ab1e040c09d1.tar.bz2
libstdc++ Enhance thread safety of debug mode iterators
Avoids race condition when checking for an iterator to be singular or to be comparable to another iterator. * src/c++/debug.cc (_Safe_sequence_base::_M_attach_single): Set attached iterator sequence pointer and version. (_Safe_sequence_base::_M_detach_single): Reset detached iterator. (_Safe_iterator_base::_M_attach): Remove attached iterator sequence pointer and version asignments. (_Safe_iterator_base::_M_attach_single): Likewise. (_Safe_iterator_base::_M_detach_single): Remove detached iterator reset. (_Safe_iterator_base::_M_singular): Use atomic load to access parent sequence. (_Safe_iterator_base::_M_can_compare): Likewise. (_Safe_iterator_base::_M_get_mutex): Likewise. (_Safe_local_iterator_base::_M_attach): Remove attached iterator container pointer and version assignments. (_Safe_local_iterator_base::_M_attach_single): Likewise. (_Safe_unordered_container_base::_M_attach_local_single): Set attached iterator container pointer and version. (_Safe_unordered_container_base::_M_detach_local_single): Reset detached iterator.
Diffstat (limited to 'gcc/fortran/interface.c')
0 files changed, 0 insertions, 0 deletions