f7843e2198
we can use g_cpu_lockset to determine whether we are currently in the scheduling lock, and all accesses and modifications to g_cpu_lockset, g_cpu_irqlock, g_cpu_irqset are in the critical section, so we can directly operate on it. test: We can use qemu for testing. compiling make distclean -j20; ./tools/configure.sh -l qemu-armv8a:nsh_smp ;make -j20 running qemu-system-aarch64 -cpu cortex-a53 -smp 4 -nographic -machine virt,virtualization=on,gic-version=3 -net none -chardev stdio,id=con,mux=on -serial chardev:con -mon chardev=con,mode=readline -kernel ./nuttx Signed-off-by: hujun5 <hujun5@xiaomi.com> |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
exit.c | ||
Make.defs | ||
spawn.h | ||
task_activate.c | ||
task_cancelpt.c | ||
task_create.c | ||
task_delete.c | ||
task_execve.c | ||
task_exit.c | ||
task_exithook.c | ||
task_fork.c | ||
task_getgroup.c | ||
task_getpid.c | ||
task_getppid.c | ||
task_gettid.c | ||
task_init.c | ||
task_join.c | ||
task_posixspawn.c | ||
task_prctl.c | ||
task_recover.c | ||
task_reparent.c | ||
task_restart.c | ||
task_setup.c | ||
task_spawn.c | ||
task_spawnparms.c | ||
task_start.c | ||
task_starthook.c | ||
task_terminate.c | ||
task.h |