summaryrefslogtreecommitdiffstats
path: root/libgfortran/io
diff options
context:
space:
mode:
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>2006-06-19 03:07:54 +0000
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>2006-06-19 03:07:54 +0000
commit364b9cb6b2d36a2367a952a692c7b26e086eba97 (patch)
treede65a1af75df21397cfbf2455d01ac6806e27c83 /libgfortran/io
parentce0864bc7185928e951c8204b72bfd74c538eeac (diff)
downloadppe42-gcc-364b9cb6b2d36a2367a952a692c7b26e086eba97.tar.gz
ppe42-gcc-364b9cb6b2d36a2367a952a692c7b26e086eba97.zip
PR libgomp/27254
* io/unit.c (get_internal_unit): Initialize and lock thread mutex for internal units. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114765 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran/io')
-rw-r--r--libgfortran/io/unit.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/libgfortran/io/unit.c b/libgfortran/io/unit.c
index 14438f84c82..0b7dee10155 100644
--- a/libgfortran/io/unit.c
+++ b/libgfortran/io/unit.c
@@ -376,6 +376,15 @@ get_internal_unit (st_parameter_dt *dtp)
}
memset (iunit, '\0', sizeof (gfc_unit));
+#ifdef __GTHREAD_MUTEX_INIT
+ {
+ __gthread_mutex_t tmp = __GTHREAD_MUTEX_INIT;
+ iunit->lock = tmp;
+ }
+#else
+ __GTHREAD_MUTEX_INIT_FUNCTION (&iunit->lock);
+#endif
+ __gthread_mutex_lock (&iunit->lock);
iunit->recl = dtp->internal_unit_len;
OpenPOWER on IntegriCloud