libgfortran: Bugfix if not define HAVE_ATOMIC_FETCH_ADD
This patch try to fix the bug when HAVE_ATOMIC_FETCH_ADD is not defined in dec_waiting_unlocked function. As io.h does not include async.h, the WRLOCK and RWUNLOCK macros are undefined. libgfortran/ChangeLog: * io/io.h (dec_waiting_unlocked): Use __gthread_rwlock_wrlock/__gthread_rwlock_unlock or __gthread_mutex_lock/__gthread_mutex_unlock functions to replace WRLOCK and RWUNLOCK macros. Signed-off-by: Lipeng Zhu <lipeng.zhu@intel.com>
This commit is contained in:
parent
7be87b7d2e
commit
8414f10ad5
1 changed files with 8 additions and 2 deletions
|
@ -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--;
|
||||
RWUNLOCK (&unit_rwlock);
|
||||
__gthread_rwlock_unlock (&unit_rwlock);
|
||||
#else
|
||||
__gthread_mutex_lock (&unit_rwlock);
|
||||
u->waiting--;
|
||||
__gthread_mutex_unlock (&unit_rwlock);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue