aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas König <tkoenig@gcc.gnu.org>2020-02-13 22:22:04 +0100
committerThomas König <tkoenig@gcc.gnu.org>2020-02-18 19:45:25 +0100
commit3fe1910509e32d611b3a7b8503502103bc53b5e4 (patch)
tree557aab0db02180d59b1610126b61af354696056f /gcc
parent9b8e2dea783b3e67813b12c7cb3036b5a9892c65 (diff)
downloadgcc-3fe1910509e32d611b3a7b8503502103bc53b5e4.zip
gcc-3fe1910509e32d611b3a7b8503502103bc53b5e4.tar.gz
gcc-3fe1910509e32d611b3a7b8503502103bc53b5e4.tar.bz2
Use au->lock exclusively for locking in async I/O.
2020-02-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/93599 * io/async.c (destroy_adv_cond): Do not destroy lock. (async_io): Make sure au->lock is locked for finishing of thread. Do not lock/unlock around signalling emptysignal. Unlock au->lock before return. (init_adv_cond): Do not initialize lock. (enqueue_transfer): Unlock after signal. (enqueue_done_id): Likewise. (enqueue_done): Likewise. (enqueue_close): Likewise. (enqueue_data_transfer): Likewise. (async_wait_id): Do not lock/unlock around signalling au->work. (async_wait): Unlock after signal. * io/async.h (SIGNAL): Add comment about needed au->lock. Remove locking/unlocking of advcond->lock. (WAIT_SIGNAL_MUTEX): Add comment. Remove locking/unlocking of advcond->lock. Unlock mutex only at the end. Loop on __ghread_cond_wait returning zero. (REVOKE_SIGNAL): Add comment. Remove locking/unlocking of advcond->lock. (struct adv_cond): Remove mutex from struct. asdf
Diffstat (limited to 'gcc')
0 files changed, 0 insertions, 0 deletions