]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/Host/ThreadLauncher.h
Import lua 5.3.4 to contrib
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / include / lldb / Host / ThreadLauncher.h
1 //===-- ThreadLauncher.h -----------------------------------------*- C++
2 //-*-===//
3 //
4 //                     The LLVM Compiler Infrastructure
5 //
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
10
11 #ifndef lldb_Host_ThreadLauncher_h_
12 #define lldb_Host_ThreadLauncher_h_
13
14 #include "lldb/Host/HostThread.h"
15 #include "lldb/Utility/Status.h"
16 #include "lldb/lldb-types.h"
17
18 #include "llvm/ADT/StringRef.h"
19
20 namespace lldb_private {
21
22 class ThreadLauncher {
23 public:
24   static HostThread
25   LaunchThread(llvm::StringRef name, lldb::thread_func_t thread_function,
26                lldb::thread_arg_t thread_arg, Status *error_ptr,
27                size_t min_stack_byte_size = 0); // Minimum stack size in bytes,
28                                                 // set stack size to zero for
29                                                 // default platform thread stack
30                                                 // size
31
32   struct HostThreadCreateInfo {
33     std::string thread_name;
34     lldb::thread_func_t thread_fptr;
35     lldb::thread_arg_t thread_arg;
36
37     HostThreadCreateInfo(const char *name, lldb::thread_func_t fptr,
38                          lldb::thread_arg_t arg)
39         : thread_name(name ? name : ""), thread_fptr(fptr), thread_arg(arg) {}
40   };
41 };
42 }
43
44 #endif