摘要
创建会话。
声明
#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_TERMINATED
,当线程停止执行(由于
正在调用 zx_thread_exit()
)。
进程 是进程的控制进程对象 新线程,该线程将成为该进程的子进程。
如需详细了解线程生命周期,请参阅线程对象。
权限
process 的类型必须为 ZX_OBJ_TYPE_PROCESS
且包含 ZX_RIGHT_MANAGE_THREAD
。
返回值
成功后,zx_thread_create()
会返回 ZX_OK
和一个句柄(通过 out)
添加到新线程中。如果失败,错误值为负值:
返回。
错误
ZX_ERR_BAD_HANDLE
进程不是有效的句柄。
ZX_ERR_WRONG_TYPE
process 不是进程句柄。
ZX_ERR_ACCESS_DENIED
进程没有 ZX_RIGHT_MANAGE_THREAD
权限。
ZX_ERR_INVALID_ARGS
name 或 out 是无效的指针,或 options 原为
非零值。
ZX_ERR_NO_MEMORY
因内存不足而失败。
用户空间没有好办法处理这种(不太可能)错误。
在将来的版本中,此错误不会再发生。
另请参阅
zx_handle_close()
zx_handle_duplicate()
zx_object_wait_async()
zx_object_wait_many()
zx_object_wait_one()
zx_thread_exit()
zx_thread_start()