| //===-- HostThread.h --------------------------------------------*- C++ -*-===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLDB_HOST_HOSTTHREAD_H |
| #define LLDB_HOST_HOSTTHREAD_H |
| |
| #include "lldb/Host/HostNativeThreadForward.h" |
| #include "lldb/Utility/Status.h" |
| #include "lldb/lldb-types.h" |
| |
| #include <memory> |
| |
| namespace lldb_private { |
| |
| class HostNativeThreadBase; |
| |
| /// \class HostInfo HostInfo.h "lldb/Host/HostThread.h" |
| /// A class that represents a thread running inside of a process on the |
| /// local machine. |
| /// |
| /// HostThread allows querying and manipulation of threads running on the host |
| /// machine. |
| /// |
| class HostThread { |
| public: |
| HostThread(); |
| HostThread(lldb::thread_t thread); |
| |
| Status Join(lldb::thread_result_t *result); |
| Status Cancel(); |
| void Reset(); |
| lldb::thread_t Release(); |
| |
| bool IsJoinable() const; |
| HostNativeThread &GetNativeThread(); |
| const HostNativeThread &GetNativeThread() const; |
| lldb::thread_result_t GetResult() const; |
| |
| bool EqualsThread(lldb::thread_t thread) const; |
| |
| private: |
| std::shared_ptr<HostNativeThreadBase> m_native_thread; |
| }; |
| } |
| |
| #endif |