diff options
author | François Dumont <fdumont@gcc.gnu.org> | 2020-02-29 18:22:55 +0100 |
---|---|---|
committer | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2020-08-17 12:58:14 -0300 |
commit | 1539945e391472bfa5ef77522279ab1e040c09d1 (patch) | |
tree | caa0c24850710ec8e67b8088d17a1ab7b147d179 /gcc/fortran/interface.c | |
parent | 9b0af11b1e799a24015a69e5f1dca9a049809687 (diff) | |
download | gcc-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