This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/66AK2H12:Thread (任务)加入?

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/627355/rtos-66ak2h12-thread-task-join

器件型号:66AK2H12

工具/软件:TI-RTOS

SYS/BIOS 6.50、XDCtools 3.50、CCS 7.2、xdc.useModule('ti.sysbios.knl.Task'); 

我有一些要求、需要等待任务终止。 我找不到一个像联接这样的简单函数来完成这一操作。 我看到我可以在 cfg 中静态设置任务挂钩、但实现简单的连接机制似乎相当复杂。 我是否缺少明显的内容、如果不需要或需要挂钩、我能否获得一些演示加入实现的示例?

Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在这里扩展一些我要尝试做的事情。 我有两种情况:
    1) 1)我有一个已创建的任务句柄、我已经唤醒了该任务、指示它完成其工作、现在我想等待它终止。 这是一个类似 joine()的函数会有所帮助的地方。 也许由于我有任务句柄、我可以检查其状态? [处理终止线程挂起的时间有多长!?]
    2) 2)我有一些任务要运行到完成、并且我没有对其进行监控、也不能等待它完成。 (可能是在异步 IO 上等待的工作线程或慢速线程)

    在这两种情况下,我都需要使用 Task_delete () right 删除任务吗? 否则、我会发生内存泄漏?

    如果我尝试使用 Exit Hook 函数、任务是否可以自行删除?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已将您的疑问转发给 TI-RTOS 专家。 他们的反馈应发布在此处。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mike:

    您可以尝试几个选项。    您可以在.cfg 文件中设置 Task.deleteTerminatedTasks = true。  使用此配置、空闲任务将释放已终止的任务。

    查看 Task_exit()代码,它看起来不像您应该删除任务退出挂钩函数中的任务。  调用 EXIT 挂钩后、任务句柄仍在内核代码中引用。

    此主题中还有一个解决方案:

    此致、

    Janet