mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-16 12:34:45 +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>
|
||||
|
||||
PR 488/rtems
|
||||
|
||||
@@ -109,8 +109,8 @@ User_extensions_routine _RTEMS_tasks_Delete_extension(
|
||||
while (tvp) {
|
||||
next = tvp->next;
|
||||
if (tvp->dtor)
|
||||
(*tvp->dtor)(*tvp->ptr );
|
||||
if (executing == deleted)
|
||||
(*tvp->dtor)(*tvp->ptr);
|
||||
if (_Thread_Is_executing(deleted))
|
||||
*tvp->ptr = tvp->gval;
|
||||
_Workspace_Free( tvp );
|
||||
tvp = next;
|
||||
|
||||
@@ -53,10 +53,12 @@ rtems_status_code rtems_task_variable_delete(
|
||||
if (tvp->ptr == ptr) {
|
||||
if (prev) prev->next = tvp->next;
|
||||
else the_thread->task_variables = tvp->next;
|
||||
if (_Thread_Is_executing (the_thread))
|
||||
if (tvp->dtor)
|
||||
(*tvp->dtor)(*tvp->ptr);
|
||||
if (_Thread_Is_executing(the_thread))
|
||||
*tvp->ptr = tvp->gval;
|
||||
_Thread_Enable_dispatch();
|
||||
_Workspace_Free(tvp);
|
||||
_Thread_Enable_dispatch();
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
prev = tvp;
|
||||
|
||||
Reference in New Issue
Block a user