incubator-nuttx/include
hujun5 b6693065e7 pthread_once: g_lock may lead deadlock
For programs with the dependencies logic in pthread_once callback , using global locks may cause deadlock:

task A
pthread_once()
|
|-> nxrmutex_lock(&g_lock);
 -> init_routine(); // callback to wait task B
                                                  task B
                                                  pthread_once()
                                                  |
                                                   ->nxrmutex_lock(&g_lock); // Deadlock
                                                   ->init_routine(); // hold resource to wake up task A

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2023-09-26 10:13:00 +08:00
..
android
arpa
crypto crypto/cryptodev: expansion hash operation 2023-09-24 03:49:33 +08:00
cxx
net
netinet libc/net: compatible with Android for htonq/ntohq 2023-08-02 22:47:29 -07:00
netpacket Fix nuttx coding style 2023-07-11 23:32:17 +08:00
nuttx list: update list.h 2023-09-26 00:15:21 +08:00
ssp
sys tls: Move task_tls_alloc and task_tls_destruct to libc 2023-08-28 11:02:18 +03: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: add panic notifier data for notify more information 2023-08-03 03:17:22 -07: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 debug: add support for IPC (interprocessor communication) debug messages 2023-09-22 00:02:51 +08:00
dirent.h
dlfcn.h
dsp.h
dspb16.h
elf.h Fix and improve dynamic loader 2023-07-13 10:11:58 +08:00
elf32.h Fix and improve dynamic loader 2023-07-13 10:11:58 +08:00
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 Fix nuttx coding style 2023-07-11 23:32:17 +08:00
execinfo.h sched_backtrace: define sched_dumpstack when not enable SCHED_BACKTRACE 2023-07-31 05:46:37 -07:00
fcntl.h include/fcntl.h: add O_NOATIME flags 2023-07-28 20:56:22 -07:00
fixedmath.h
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
libgen.h
libintl.h
limits.h
locale.h
lzf.h
malloc.h libc/mallopt: implement dummy mallopt 2023-09-07 23:11:10 +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 signal: add siginterrupt implementation 2023-08-29 09:43:42 +08:00
spawn.h
stdbool.h
stddef.h
stdint.h Fix nuttx coding style 2023-07-11 23:32:17 +08:00
stdio.h libs/libc: support unlock version for fread/fwrite/fputc/fgetc/... 2023-09-06 15:08:24 +03:00
stdlib.h libc/rand_r: support rand_r api 2023-07-29 07:28:23 -07:00
stdnoreturn.h
string.h
strings.h
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:add syncfs api for sync whole fs data 2023-09-23 15:58:00 +08:00
utime.h
uuid.h
wchar.h libs/libc/wchar: add fputws implementation 2023-09-22 08:51:07 +08:00
wctype.h