diff options
Diffstat (limited to 'nuttx/sched/sched_releasetcb.c')
-rw-r--r-- | nuttx/sched/sched_releasetcb.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/nuttx/sched/sched_releasetcb.c b/nuttx/sched/sched_releasetcb.c index 567db2021..cd8e9c8c3 100644 --- a/nuttx/sched/sched_releasetcb.c +++ b/nuttx/sched/sched_releasetcb.c @@ -138,9 +138,16 @@ int sched_releasetcb(FAR _TCB *tcb) /* Delete the tasks's allocated DSpace region (external modules only) */ #ifdef CONFIG_PIC - if (tcb->picbase) + if (tcb->dspace) { - sched_free(tcb->picbase); + if (tcb->dspace->crefs <= 1) + { + sched_free(tcb->dspace); + } + else + { + tcb->dspace->crefs--; + } } #endif |