中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

HTL_thread_attr_setstack

指定内存设置线程属性中的栈大小。

接口定义

int HTL_thread_attr_setstack(HTL_thread_attr_t *thread_attr, void *stackaddr, size_t stacksize);

描述

HTL_thread_attr_setstack()在线程属性thread_attr中设置栈地址stackaddr和栈大小stacksize(以字节为单位)。

stackaddr指向的内存将用作创建的线程的栈区域。

  • 如果stackaddr为NULL:

    在创建线程时HTL自动分配大小为stacksize的栈,此栈将由HTL运行时自动释放。

  • 如果stackaddr不为NULL:

    stackaddr必须8字节对齐,使用完后用户负责释放该内存。

不建议多个线程共享同一块栈内存,因为它很容易损坏函数栈并使程序崩溃。

参数

参数名

类型

描述

输入/输出

thread_attr

HTL_thread_attr_t *

线程属性句柄地址。

输入

stackaddr

void *

栈地址。

输入

stacksize

size_t

栈大小(字节)。

输入

返回值

  • HTL_THREAD_SUCCESS:成功。
  • 其他:失败。见错误码定义。

示例

    const size_t stacksize = 32768;
    stack = malloc(stacksize);
    HTL_thread_attr_t attr;
    ret = HTL_thread_attr_init(&attr);
    ret = HTL_thread_attr_setstack(&attr, stack, stacksize);