求助:关于rt_thread_delete函数的一些疑问

发布于 2018-11-02 18:11:44
    本帖最后由 aranzeb 于 2018-11-2 18:16 编辑


假设:程序有全局变量 char *gp;线程A有局部变量char *lp;

在线程A中给gp和lp申请一段内存:
gp=rt_malloc();
lp=rt_malloc();

----------分割线--------
现在在线程B中rt_thread_delete(A),(注:在此之前前,A中的gp,lp没有释放)
请问:1.在A被delete后,gp和lp各自指向的内存会被自动释放吗?
2.如果被释放,那么指针(gp、lp)会自动指向RT_NULL吗?
3.请问释放内存是在rt_thread_delete()函数执行时,还是在空闲线程idle中呢?

4.rt_thread_delete函数在delete一个线程时,被delete的线程的哪些资源会被自动释放,在线程中创建的诸如信号量,邮箱以及定时器等等会被自动释放吗?


不胜感激!!!



查看更多

关注者
0
被浏览
1.1k
3 个回答
yqiu
yqiu 2018-11-02
建议先仔细看下编程指南,其中都有答案。
还没想好
还没想好 2018-11-05
1 malloc 出来的东西不会自动释放,需要手动释放
2 rt_thread_delete() 函数起到作用类似标记,真正的删除动作在 idle 中执行
3 rt_thread_delete() 函数会删除线程相关的东西,例如线程控制块。用户在线程里面创建的信号量,邮箱等,需要手动删除
aranzeb
aranzeb 2018-11-09
还没想好 发表于 2018-11-5 09:17
1 malloc 出来的东西不会自动释放,需要手动释放
2 rt_thread_delete() 函数起到作用类似标记,真正的删除 ...


多谢解答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览