mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-06 07:33:17 +00:00
2003-10-22 Joel Sherrill <joel@OARcorp.com>
PR 512/core * src/tasks.c, src/taskvariabledelete.c: Run task variable destructor when task variable is deleted. Also some style cleanup.
This commit is contained in:
@@ -1,3 +1,9 @@
|
|||||||
|
2003-10-22 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
PR 512/core
|
||||||
|
* src/tasks.c, src/taskvariabledelete.c: Run task variable destructor
|
||||||
|
when task variable is deleted. Also some style cleanup.
|
||||||
|
|
||||||
2003-09-11 Joel Sherrill <joel@OARcorp.com>
|
2003-09-11 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
PR 488/rtems
|
PR 488/rtems
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ User_extensions_routine _RTEMS_tasks_Delete_extension(
|
|||||||
next = tvp->next;
|
next = tvp->next;
|
||||||
if (tvp->dtor)
|
if (tvp->dtor)
|
||||||
(*tvp->dtor)(*tvp->ptr);
|
(*tvp->dtor)(*tvp->ptr);
|
||||||
if (executing == deleted)
|
if (_Thread_Is_executing(deleted))
|
||||||
*tvp->ptr = tvp->gval;
|
*tvp->ptr = tvp->gval;
|
||||||
_Workspace_Free( tvp );
|
_Workspace_Free( tvp );
|
||||||
tvp = next;
|
tvp = next;
|
||||||
|
|||||||
@@ -53,10 +53,12 @@ rtems_status_code rtems_task_variable_delete(
|
|||||||
if (tvp->ptr == ptr) {
|
if (tvp->ptr == ptr) {
|
||||||
if (prev) prev->next = tvp->next;
|
if (prev) prev->next = tvp->next;
|
||||||
else the_thread->task_variables = tvp->next;
|
else the_thread->task_variables = tvp->next;
|
||||||
|
if (tvp->dtor)
|
||||||
|
(*tvp->dtor)(*tvp->ptr);
|
||||||
if (_Thread_Is_executing(the_thread))
|
if (_Thread_Is_executing(the_thread))
|
||||||
*tvp->ptr = tvp->gval;
|
*tvp->ptr = tvp->gval;
|
||||||
_Thread_Enable_dispatch();
|
|
||||||
_Workspace_Free(tvp);
|
_Workspace_Free(tvp);
|
||||||
|
_Thread_Enable_dispatch();
|
||||||
return RTEMS_SUCCESSFUL;
|
return RTEMS_SUCCESSFUL;
|
||||||
}
|
}
|
||||||
prev = tvp;
|
prev = tvp;
|
||||||
|
|||||||
Reference in New Issue
Block a user