Changeset a3b4632 in rtems for cpukit/rtems/src/tasks.c


Ignore:
Timestamp:
Oct 4, 2005, 9:53:58 PM (16 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Children:
24b6d2f
Parents:
dc4bd19
Message:

2005-10-04 Till Straumann <strauman@…>

PR 829/rtems

  • src/tasks.c, src/taskvariabledelete.c: If task variables are deleted from a different context (i.e., executing context != owner of the task variable. The owner meaning the task that registered the dtor in question) the argument passed to the task variable dtor must be tvar and not *ptr which yields the executing task's value of the task variable instead of the owner's.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/rtems/src/tasks.c

    rdc4bd19 ra3b4632  
    109109  while (tvp) {
    110110    next = tvp->next;
    111     if  (tvp->dtor)
     111    if (_Thread_Is_executing(deleted)) {
     112      if  (tvp->dtor)
    112113        (*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    }
    115119    _Workspace_Free( tvp );
    116120    tvp = next;
Note: See TracChangeset for help on using the changeset viewer.