aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/io/io.h
diff options
context:
space:
mode:
Diffstat (limited to 'libgfortran/io/io.h')
-rw-r--r--libgfortran/io/io.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/libgfortran/io/io.h b/libgfortran/io/io.h
index 862daca..59bc19e 100644
--- a/libgfortran/io/io.h
+++ b/libgfortran/io/io.h
@@ -1020,9 +1020,15 @@ dec_waiting_unlocked (gfc_unit *u)
#ifdef HAVE_ATOMIC_FETCH_ADD
(void) __atomic_fetch_add (&u->waiting, -1, __ATOMIC_RELAXED);
#else
- WRLOCK (&unit_rwlock);
+#ifdef __GTHREAD_RWLOCK_INIT
+ __gthread_rwlock_wrlock (&unit_rwlock);
+ u->waiting--;
+ __gthread_rwlock_unlock (&unit_rwlock);
+#else
+ __gthread_mutex_lock (&unit_rwlock);
u->waiting--;
- RWUNLOCK (&unit_rwlock);
+ __gthread_mutex_unlock (&unit_rwlock);
+#endif
#endif
}