gcc/libgfortran/io
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
..
async.c Use au->lock exclusively for locking in async I/O. 2020-02-18 19:45:25 +01:00
async.h Use au->lock exclusively for locking in async I/O. 2020-02-18 19:45:25 +01:00
close.c Update copyright years. 2020-01-01 12:51:42 +01:00
fbuf.c Update copyright years. 2020-01-01 12:51:42 +01:00
fbuf.h Update copyright years. 2020-01-01 12:51:42 +01:00
file_pos.c Update copyright years. 2020-01-01 12:51:42 +01:00
format.c PR90374 Zero width format specifiers. 2020-01-17 11:26:10 -08:00
format.h Update copyright years. 2020-01-01 12:51:42 +01:00
inquire.c Update copyright years. 2020-01-01 12:51:42 +01:00
intrinsics.c Update copyright years. 2020-01-01 12:51:42 +01:00
io.h PR 90374 d0.d, e0.d, es0.d, en0.d, g0.d and ew.d edit descriptors. 2020-01-02 00:57:31 +00:00
list_read.c Update copyright years. 2020-01-01 12:51:42 +01:00
lock.c Update copyright years. 2020-01-01 12:51:42 +01:00
open.c Update copyright years. 2020-01-01 12:51:42 +01:00
read.c Update copyright years. 2020-01-01 12:51:42 +01:00
size_from_kind.c Update copyright years. 2020-01-01 12:51:42 +01:00
transfer.c PR 90374 d0.d, e0.d, es0.d, en0.d, g0.d and ew.d edit descriptors. 2020-01-02 00:57:31 +00:00
transfer128.c Update copyright years. 2020-01-01 12:51:42 +01:00
unit.c PR93234 INQUIRE on pre-assigned files of ROUND and SIGN properties 2020-01-17 19:36:03 -08:00
unix.c Update copyright years. 2020-01-01 12:51:42 +01:00
unix.h Update copyright years. 2020-01-01 12:51:42 +01:00
write.c PR 90374 d0.d, e0.d, es0.d, en0.d, g0.d and ew.d edit descriptors. 2020-01-02 00:57:31 +00:00
write_float.def PR90374 Zero width format specifiers. 2020-01-17 11:26:10 -08:00