Skip to content

Commit

Permalink
sched: Make task_delete(getpid()) equal exit(EXIT_SUCCESS)
Browse files Browse the repository at this point in the history
Signed-off-by: Xiang Xiao <[email protected]>
Change-Id: I63b2a372ccf0e9ac4e6a7fc9b1b160d71eeeb40f
  • Loading branch information
xiaoxiang781216 authored and patacongo committed Jun 15, 2020
1 parent fd5fc2a commit f70981c
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions sched/task/task_delete.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,17 @@ int task_delete(pid_t pid)
goto errout;
}

/* Check if the task to delete is the calling task */

if (pid == rtcb->pid)
{
/* If it is, then what we really wanted to do was exit. Note that we
* don't bother to unlock the TCB since it will be going away.
*/

exit(EXIT_SUCCESS);
}

/* Check to see if this task has the non-cancelable bit set in its
* flags. Suppress context changes for a bit so that the flags are stable.
* (the flags should not change in interrupt handling).
Expand Down Expand Up @@ -183,17 +194,7 @@ int task_delete(pid_t pid)
}
#endif

/* Check if the task to delete is the calling task */

sched_unlock();
if (pid == rtcb->pid)
{
/* If it is, then what we really wanted to do was exit. Note that we
* don't bother to unlock the TCB since it will be going away.
*/

exit(EXIT_SUCCESS);
}

/* Otherwise, perform the asynchronous cancellation, letting
* nxtask_terminate() do all of the heavy lifting.
Expand Down

0 comments on commit f70981c

Please sign in to comment.