摘要
建立執行緒。
宣告
#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
」並非處理程序。
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()