waitpid(): Move some logic inside of a critical section
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5054 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
c611d361c1
commit
a6e8ab1d51
@ -3183,3 +3183,5 @@
|
||||
Fix some strange (and probably wrong) list handling when
|
||||
CONFIG_PRIORITY_INHERITANCE and CONFIG_SEM_PREALLOCHOLDERS are defined.
|
||||
This list handling was probably causing errors reported by Mike Smith
|
||||
* sched/sched_waitpid.c: Fix a possible issue with logic logic that
|
||||
should be brought into a critical section (suggested by Mike Smith)
|
||||
|
@ -178,7 +178,7 @@
|
||||
|
||||
pid_t waitpid(pid_t pid, int *stat_loc, int options)
|
||||
{
|
||||
_TCB *tcb = sched_gettcb(pid);
|
||||
_TCB *tcb;
|
||||
bool mystat;
|
||||
int err;
|
||||
int ret;
|
||||
@ -186,6 +186,7 @@ pid_t waitpid(pid_t pid, int *stat_loc, int options)
|
||||
/* Disable pre-emption so that nothing changes in the following tests */
|
||||
|
||||
sched_lock();
|
||||
tcb = sched_gettcb(pid);
|
||||
if (!tcb)
|
||||
{
|
||||
err = ECHILD;
|
||||
|
Loading…
Reference in New Issue
Block a user