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:
Joel Sherrill
2003-10-22 17:14:16 +00:00
parent 49f466c75d
commit 5bda3a9a72
3 changed files with 12 additions and 4 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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;