zephyr/lib/posix
Jaxson Han 0df7bd26ed lib: posix: pthread_rwlock: Fix a racy issue
Multiple reader threads unlocking the read lock simultaneously might
cause the program hang because it's possible that no thread is
identified as the last one to active the writer thread.

To fix the issue, swap the k_sem_give sequence.

Signed-off-by: Jaxson Han <jaxson.han@arm.com>
2023-07-12 09:25:26 +02:00
..
getopt iterable_sections: move to specific header 2023-05-22 10:42:30 +02:00
_common.c posix: rename some files for brevity 2023-07-06 11:47:07 -04:00
barrier.c posix: Implement pthread_barrieratter functions 2023-07-09 10:40:57 -04:00
clock.c posix: clock: fix seconds calculation 2023-01-04 21:12:58 +01:00
CMakeLists.txt posix: implement uname 2023-07-09 16:57:16 -04:00
cond.c posix: rename some files for brevity 2023-07-06 11:47:07 -04:00
eventfd.c posix: eventfd: fix waking up poll() 2023-06-22 16:09:42 -04:00
fnmatch.c posix: fnmatch: correct (many) compliance issues 2023-03-03 17:40:14 +09:00
fs.c posix: fs: Fixes stat command to return file information 2023-06-23 17:04:34 -04:00
Kconfig posix: implement uname 2023-07-09 16:57:16 -04:00
Kconfig.barrier posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.clock posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.cond posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.eventfd posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.fnmatch posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.fs posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.getopt posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.key posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.mqueue posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.mutex posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.pthread posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.semaphore posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.spinlock posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.template.pooled_ipc_type posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.template.pooled_type posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.template.with_url posix: split supported features into separate Kconfig files 2023-07-06 11:47:07 -04:00
Kconfig.timer posix: implement timer_getoverrun() 2023-07-10 09:30:33 +02:00
Kconfig.uname posix: implement uname 2023-07-09 16:57:16 -04:00
key.c posix: rename some files for brevity 2023-07-06 11:47:07 -04:00
mqueue.c posix: mqueue: do not typedef mq_attr 2023-01-23 09:57:31 -08:00
mutex.c posix: rename some files for brevity 2023-07-06 11:47:07 -04:00
nanosleep.c sys: util: migrate all files to DIV_ROUND_UP 2023-04-11 12:00:37 +02:00
perror.c lib: posix: add perror() implementation 2022-07-04 22:53:36 +02:00
posix_internal.h posix: pthread: mitigate include order sensitivity 2023-06-09 12:27:04 -04:00
pthread.c posix: pthread: fixes for coverity 321140 and 321092 2023-07-09 08:20:32 -04:00
pthread_sched.h posix: sched: add support for SCHED_OTHER 2023-04-29 13:14:40 -07:00
rwlock.c lib: posix: pthread_rwlock: Fix a racy issue 2023-07-12 09:25:26 +02:00
sched.c posix: rename some files for brevity 2023-07-06 11:47:07 -04:00
semaphore.c lib: posix: semaphore: use consistent timebase in sem_timedwait 2022-06-24 20:12:05 +02:00
sleep.c lib: posix: update usleep() to follow the POSIX spec 2022-11-24 19:31:33 -05:00
spinlock.c posix: spinlock: additional kconfig for k_spinlock being size 0 2023-07-06 16:45:26 +00:00
timer.c posix: implement timer_getoverrun() 2023-07-10 09:30:33 +02:00
uname.c posix: implement uname 2023-07-09 16:57:16 -04:00