Changeset a3b4632 in rtems
- Timestamp:
- 10/04/05 21:53:58 (17 years ago)
- Children:
- 24b6d2f
- Parents:
- dc4bd19
- Location:
- cpukit/rtems
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
cpukit/rtems/ChangeLog
rdc4bd19 ra3b4632 1 2005-10-04 Till Straumann <strauman@slac.stanford.edu> 2 3 PR 829/rtems 4 * src/tasks.c, src/taskvariabledelete.c: If task variables are deleted 5 from a different context (i.e., executing context != owner of the 6 task variable. The owner meaning the task that registered the dtor in 7 question) the argument passed to the task variable dtor must be tvar 8 and not *ptr which yields the executing task's value of the task 9 variable instead of the owner's. 10 1 11 2005-08-18 Andrew Sinclair <Andrew.Sinclair@elprotech.com> 2 12 -
cpukit/rtems/src/tasks.c
rdc4bd19 ra3b4632 109 109 while (tvp) { 110 110 next = tvp->next; 111 if (tvp->dtor) 111 if (_Thread_Is_executing(deleted)) { 112 if (tvp->dtor) 112 113 (*tvp->dtor)(*tvp->ptr); 113 if (_Thread_Is_executing(deleted)) 114 *tvp->ptr = tvp->gval; 114 *tvp->ptr = tvp->gval; 115 } else { 116 if (tvp->dtor) 117 (*tvp->dtor)(tvp->tval); 118 } 115 119 _Workspace_Free( tvp ); 116 120 tvp = next; -
cpukit/rtems/src/taskvariabledelete.c
rdc4bd19 ra3b4632 57 57 if (prev) prev->next = tvp->next; 58 58 else the_thread->task_variables = tvp->next; 59 if ( tvp->dtor)60 (*tvp->dtor)(*tvp->ptr);61 if (_Thread_Is_executing(the_thread)) 59 if (_Thread_Is_executing(the_thread)) { 60 if (tvp->dtor) 61 (*tvp->dtor)(*tvp->ptr); 62 62 *tvp->ptr = tvp->gval; 63 } else { 64 if (tvp->dtor) 65 (*tvp->dtor)(tvp->tval); 66 } 63 67 _Workspace_Free(tvp); 64 68 _Thread_Enable_dispatch();
Note: See TracChangeset
for help on using the changeset viewer.