QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1521|回复: 5

thread创建后能够改变其Stack吗?

[复制链接]
发表于 2006-4-4 16:26:56 | 显示全部楼层 |阅读模式
例如:创建thread前,我设置了该进程的stack,然后创建thread. thread执行过程中,我暂停thread, 想改变该thread的stack. 该怎样做?
可以使用temp stack吗?该怎样使用呢?
发表于 2006-4-4 21:45:33 | 显示全部楼层
不知道,帮顶
回复

使用道具 举报

发表于 2006-4-5 10:39:33 | 显示全部楼层
pthread?

见置顶贴

http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&p=4627463#4627463

回复

使用道具 举报

 楼主| 发表于 2006-4-5 15:28:38 | 显示全部楼层
我找了pthread的相关函数,能够对Stack操作的API就那么几个。都必须在thread创建前实施。
int   pthread_attr_setstackaddr(pthread_attr_t *, void *);
int   pthread_attr_setstacksize(pthread_attr_t *, size_t);
int   pthread_attr_setstack(pthread_attr_t *, void *, size_t);
我测试过thread创建后修改stack的size,虽然pthread_attr_setstacksize和pthread_attr_getstacksize都正确,但是不知道实际是否成功,因为pthread_attr_setstacksize和pthread_attr_getstacksize都是对pthread_attr_t 操作,不知道有没有及时反映到thread上。
回复

使用道具 举报

发表于 2006-4-5 17:04:03 | 显示全部楼层
最直接的方法,改ESP寄存器.....
回复

使用道具 举报

 楼主| 发表于 2006-4-6 15:58:46 | 显示全部楼层
修改后thread还能继续往下执行吗?
必须在修改前保存stack的内容。还不能让thread自己保存,因为保存操作会对stack进行操作。
我还在继续调查中。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 18:24 , Processed in 0.037996 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表