diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-06-12 15:00:15 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-06-12 15:00:15 +0000 |
commit | df49c60c9671e4a28e636964d744c1f59fb6cb68 (patch) | |
tree | eabd85e189514ad412a35414ba5d483dcda3ef1f /cpukit/rtems/src/tasks.c | |
parent | Purged as many egcs references as possible. (diff) | |
download | rtems-df49c60c9671e4a28e636964d744c1f59fb6cb68.tar.bz2 |
Merged from 4.5.0-beta3a
Diffstat (limited to '')
-rw-r--r-- | cpukit/rtems/src/tasks.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/cpukit/rtems/src/tasks.c b/cpukit/rtems/src/tasks.c index 5fdff2db18..40426642c9 100644 --- a/cpukit/rtems/src/tasks.c +++ b/cpukit/rtems/src/tasks.c @@ -105,6 +105,8 @@ User_extensions_routine _RTEMS_tasks_Delete_extension( next = tvp->next; if (tvp->dtor) (*tvp->dtor)( tvp->ptr ); + if (executing == deleted) + *tvp->ptr = tvp->gval; _Workspace_Free( tvp ); tvp = next; } @@ -137,13 +139,15 @@ void _RTEMS_tasks_Switch_extension( tvp = executing->task_variables; while (tvp) { - tvp->var = *tvp->ptr; + tvp->tval = *tvp->ptr; + *tvp->ptr = tvp->gval; tvp = tvp->next; } tvp = heir->task_variables; while (tvp) { - *tvp->ptr = tvp->var; + tvp->gval = *tvp->ptr; + *tvp->ptr = tvp->tval; tvp = tvp->next; } } |