//===-- ThreadPlanStack.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_TARGET_THREADPLANSTACK_H #define LLDB_TARGET_THREADPLANSTACK_H #include <mutex> #include <string> #include <unordered_map> #include <vector> #include "lldb/Target/Target.h" #include "lldb/Target/Thread.h" #include "lldb/lldb-private-forward.h" #include "lldb/lldb-private.h" namespace lldb_private { // The ThreadPlans have a thread for use when they are asked all the ThreadPlan // state machine questions, but they should never cache any pointers from their // owning lldb_private::Thread. That's because we want to be able to detach // them from an owning thread, then reattach them by TID. // The ThreadPlanStack holds the ThreadPlans for a given TID. All its methods // are private, and it should only be accessed through the owning thread. When // it is detached from a thread, all you can do is reattach it or delete it. class ThreadPlanStack { … }; class ThreadPlanStackMap { … }; } // namespace lldb_private #endif // LLDB_TARGET_THREADPLANSTACK_H