zx_thread_create

总结

创建会话。

声明

#include <zircon/syscalls.h>

zx_status_t zx_thread_create(zx_handle_t process,
                             const char* name,
                             size_t name_size,
                             uint32_t options,
                             zx_handle_t* out);

说明

zx_thread_create() 会在指定的进程内创建线程。

成功后,将返回新线程的句柄。在调用 zx_thread_start() 之前,线程不会开始执行。

name 会被静默地截断至最多 ZX_MAX_NAME_LEN-1 个字符。

线程句柄可能会被等待,并在线程停止执行时(由于调用了 zx_thread_exit())断言 ZX_THREAD_TERMINATED 信号。

process 是新线程的控制进程对象,它将成为该进程的子级。

如需详细了解线程生命周期,请参阅线程对象

权限

process 必须为 ZX_OBJ_TYPE_PROCESS 类型且具有 ZX_RIGHT_MANAGE_THREAD

返回值

成功后,zx_thread_create() 会向新线程返回 ZX_OK 和句柄(通过 out)。如果失败,则返回负的错误值。

错误

ZX_ERR_BAD_HANDLE process 不是有效的句柄。

ZX_ERR_WRONG_TYPE process 不是进程句柄。

ZX_ERR_ACCESS_DENIED 进程没有 ZX_RIGHT_MANAGE_THREAD 权限。

ZX_ERR_INVALID_ARGS nameout 是无效的指针,或者 options 为非零值。

ZX_ERR_NO_MEMORY 由于内存不足而失败。 用户空间没有什么方法来处理此(不太可能)错误。在以后的 build 中,此错误不会再发生。

另请参阅