gcc/libgfortran
Thomas König 3fe1910509 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
2020-02-18 19:45:25 +01:00
..
caf Update copyright years. 2020-01-01 12:51:42 +01:00
config Update copyright years. 2020-01-01 12:51:42 +01:00
generated Update copyright years. 2020-01-01 12:51:42 +01:00
ieee Update copyright years. 2020-01-01 12:51:42 +01:00
intrinsics Update copyright years. 2020-01-01 12:51:42 +01:00
io Use au->lock exclusively for locking in async I/O. 2020-02-18 19:45:25 +01:00
m4 Update copyright years. 2020-01-01 12:51:42 +01:00
runtime Update copyright years. 2020-01-01 12:51:42 +01:00
ChangeLog Use au->lock exclusively for locking in async I/O. 2020-02-18 19:45:25 +01:00
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-2016
ChangeLog-2017
ChangeLog-2018 Update copyright years. 2019-01-01 13:31:55 +01:00
ChangeLog-2019 Update copyright years. 2020-01-01 12:51:42 +01:00
ISO_Fortran_binding.h Update copyright years. 2020-01-01 12:51:42 +01:00
Makefile.am re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=) 2019-05-17 19:24:27 +02:00
Makefile.in Add `--with-toolexeclibdir=' configuration option 2020-01-24 11:24:25 +00:00
acinclude.m4 Replace sync builtins with atomic builtins 2018-11-22 09:58:29 +02:00
aclocal.m4 Add `--with-toolexeclibdir=' configuration option 2020-01-24 11:24:25 +00:00
c99_protos.h Update copyright years. 2020-01-01 12:51:42 +01:00
config.h.in libfortran/90038 Reap dead children when wait=.false. 2019-05-19 22:38:11 +03:00
configure Use a non-empty test program to test ability to link. 2020-02-12 13:22:07 -08:00
configure.ac Add `--with-toolexeclibdir=' configuration option 2020-01-24 11:24:25 +00:00
configure.host
gfortran.map PR fortran/68401 Improve allocation error message 2019-08-17 08:45:37 +03:00
kinds-override.h Update copyright years. 2020-01-01 12:51:42 +01:00
libgfortran.h Update copyright years. 2020-01-01 12:51:42 +01:00
libgfortran.spec.in
libtool-version
mk-kinds-h.sh
mk-sik-inc.sh
mk-srk-inc.sh