]> git.ipfire.org Git - thirdparty/gcc.git/commit
libgomp: Don't access gomp_sem_t as int using atomics unconditionally
authorJakub Jelinek <jakub@redhat.com>
Mon, 18 Jan 2021 06:18:46 +0000 (07:18 +0100)
committerKwok Cheung Yeung <kcy@codesourcery.com>
Fri, 22 Jan 2021 16:18:56 +0000 (08:18 -0800)
commit2b93ffc7219aa53815ece2adb21f56dd265ec6bc
treea093f0da9c5aee441a96fbd997f09aff0eda33e9
parentde460a5faff80a2338ccd46f249c964fa34b4c16
libgomp: Don't access gomp_sem_t as int using atomics unconditionally

This patch introduces gomp_sem_getcount wrapper, which uses sem_getvalue
for POSIX and atomic loads for linux futex and accel.  rtems for now
remains broken.

2021-01-18  Jakub Jelinek  <jakub@redhat.com>

* config/linux/sem.h (gomp_sem_getcount): New function.
* config/posix/sem.h (gomp_sem_getcount): New function.
* config/posix/sem.c (gomp_sem_getcount): New function.
* config/accel/sem.h (gomp_sem_getcount): New function.
* task.c (task_fulfilled_p): Use gomp_sem_getcount.
(omp_fulfill_event): Likewise.

(cherry picked from commit d3b41bde961713ff4af7e18011126434c497edba)
libgomp/ChangeLog.omp
libgomp/config/accel/sem.h
libgomp/config/linux/sem.h
libgomp/config/posix/sem.c
libgomp/config/posix/sem.h
libgomp/task.c