nuttx/include
chenrun1 a6dc4412ba misc/rwlock:Implementing read/write locks.
A new locking mechanism: read/write locks
When there is a writer it is not possible to put on a read lock or a write lock; when there is a reader it is possible to reenter the read lock but not the write lock.
Writers are exclusive locks, readers are shared locks.
At the same time through the waiter count to determine whether there is currently a blocked task, if there is then in the unlock time to wake up all the waiter, through the priority of the competition to complete the blocked lock execution.
For example:
When we have a reader blocking two waiter writers, when the reader is unlocked it wakes up both writers. The writer with higher priority wakes up and checks for a successful condition and locks the lock, the second writer wakes up and fails to check for a condition and continues to block the lock.

Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2023-12-02 19:43:19 -08:00
..
android
arpa
crypto crypto/rsa_verify: export rsa verify via /dev/crypto 2023-10-18 12:23:13 +08:00
cxx
net ioctl: add definitions related to ethtool 2023-11-03 22:37:50 +08:00
netinet net/netdev: Support managing multiple IPv6 addresses by ioctl 2023-11-07 19:30:36 +08:00
netpacket
nuttx misc/rwlock:Implementing read/write locks. 2023-12-02 19:43:19 -08:00
ssp
sys sched/semaphore: Move named semaphores to user space 2023-11-27 04:52:54 -08:00
.gitignore libs/libc/gpsutils/minmea: move minmea library from apps/gpsutils 2023-08-01 23:09:46 -07:00
aio.h aio: change aio_fildes int type 2023-09-08 00:59:31 +03:00
alloca.h libs/alloca: add alloca implement for MSVC 2023-08-28 11:10:08 -03:00
assert.h assert: rename __ASSERT to __ASSERT__ to avoid conflict 2023-10-26 16:21:02 +08:00
byteswap.h
ctype.h libs/ctype/toupper_l: Implement function toupper_l instead of macro 2023-08-22 00:07:16 +08:00
debug.h Add a stepper generic upperhalf driver 2023-10-14 12:28:41 -04:00
dirent.h
dlfcn.h
dsp.h libdsp: update LP_FILTER comment 2023-10-19 21:38:45 +08:00
dspb16.h libdsp: update LP_FILTER comment 2023-10-19 21:38:45 +08:00
elf.h arch/arm64: support relocate for aarch64 2023-10-30 18:20:22 +08:00
elf32.h
elf64.h Fix loading of ET_DYN type of shared objects 2023-09-20 09:35:28 -04:00
endian.h
err.h
errno.h
execinfo.h
fcntl.h
fixedmath.h fixedmath: add abs and sign operations 2023-10-07 21:25:56 +08:00
fnmatch.h
ftw.h
getopt.h
glob.h
grp.h
hex2bin.h libs/libc/hex2bin: enhance 64-bit compatibility 2023-08-11 19:43:37 +08:00
iconv.h
ifaddrs.h
inttypes.h
iso646.h
langinfo.h The character U+ff0c "," could be confused with the ASCII character U+002c ",", which is more common in source code. 2023-10-03 16:53:12 -04:00
libgen.h
libintl.h
limits.h clock: replace all up_perf_xx with perf_xx 2023-10-02 16:11:43 +02:00
locale.h
lzf.h
malloc.h mm: record the maximum system memory usage 2023-11-09 09:08:49 +08:00
mqueue.h fs/mqueue: Fix the wrong field type in mq_attr as the spec and add the logical judgment to deal with the condition when mq_maxmsg or mq_msgsize is less than zero or equal to zero. 2023-08-03 03:10:56 -07:00
netdb.h
nl_types.h
nxflat.h
obstack.h
poll.h
pthread.h pthread_once: g_lock may lead deadlock 2023-09-26 10:13:00 +08:00
pty.h
pwd.h pwd: Add initial implementation of getpwent 2023-07-31 07:50:10 -07:00
regex.h
resolv.h
sched.h sched: Define sched_getcpu return 0 when CONFIG_SMP equals n 2023-08-06 11:28:49 +02:00
semaphore.h
signal.h sigaction: Expand si_user for non-kernel signals 2023-11-22 08:00:43 -08:00
spawn.h libs/libc/spawn: Add minimal implementation for posix_spawnattr_destory. 2023-10-31 13:42:00 +08:00
stdbool.h
stddef.h
stdint.h
stdio.h libc: add support for open_memstream 2023-11-29 02:13:19 -08:00
stdlib.h
stdnoreturn.h
string.h
strings.h Revert "libc/lib_bzero:Add bzero prototype." 2023-11-21 07:56:52 -08:00
syscall.h
syslog.h
termios.h
threads.h
time.h include: move clockid_t and time[r]_t define to sys/types.h 2023-08-19 09:08:40 +03:00
unistd.h fs/dup3: impletement dup3/nx_dup3_from_tcb function 2023-10-27 21:15:07 +08:00
utime.h
uuid.h
wchar.h stdio: Implement [clearerr|putc|fflush]_unlocked 2023-10-29 17:09:18 +02:00
wctype.h