1//===-- ThreadLauncher.h ----------------------------------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef lldb_Host_ThreadLauncher_h_ 10#define lldb_Host_ThreadLauncher_h_ 11 12#include "lldb/Host/HostThread.h" 13#include "lldb/lldb-types.h" 14 15#include "llvm/ADT/StringRef.h" 16#include "llvm/Support/Error.h" 17 18namespace lldb_private { 19 20class ThreadLauncher { 21public: 22 static llvm::Expected<HostThread> 23 LaunchThread(llvm::StringRef name, lldb::thread_func_t thread_function, 24 lldb::thread_arg_t thread_arg, 25 size_t min_stack_byte_size = 0); // Minimum stack size in bytes, 26 // set stack size to zero for 27 // default platform thread stack 28 // size 29 30 struct HostThreadCreateInfo { 31 std::string thread_name; 32 lldb::thread_func_t thread_fptr; 33 lldb::thread_arg_t thread_arg; 34 35 HostThreadCreateInfo(const char *name, lldb::thread_func_t fptr, 36 lldb::thread_arg_t arg) 37 : thread_name(name ? name : ""), thread_fptr(fptr), thread_arg(arg) {} 38 }; 39}; 40} 41 42#endif 43