1 //===-- HostThread.h --------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef lldb_Host_HostThread_h_
11 #define lldb_Host_HostThread_h_
13 #include "lldb/Host/HostNativeThreadForward.h"
14 #include "lldb/Utility/Status.h"
15 #include "lldb/lldb-types.h"
19 namespace lldb_private {
21 class HostNativeThreadBase;
23 //----------------------------------------------------------------------
24 /// @class HostInfo HostInfo.h "lldb/Host/HostThread.h"
25 /// A class that represents a thread running inside of a process on the
28 /// HostThread allows querying and manipulation of threads running on the host
31 //----------------------------------------------------------------------
35 HostThread(lldb::thread_t thread);
37 Status Join(lldb::thread_result_t *result);
40 lldb::thread_t Release();
42 bool IsJoinable() const;
43 HostNativeThread &GetNativeThread();
44 const HostNativeThread &GetNativeThread() const;
45 lldb::thread_result_t GetResult() const;
47 bool EqualsThread(lldb::thread_t thread) const;
50 std::shared_ptr<HostNativeThreadBase> m_native_thread;