1234567891011121314151617181920212223242526272829303132333435363738 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #pragma once
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <atomic>
- #include <cstdint>
- #include <list>
- #include <memory>
- #include <string>
- #include <cm/optional>
- namespace cmDebugger {
- class cmDebuggerThread;
- }
- namespace dap {
- struct StackTraceResponse;
- }
- namespace cmDebugger {
- class cmDebuggerThreadManager
- {
- static std::atomic<std::int64_t> NextThreadId;
- std::list<std::shared_ptr<cmDebuggerThread>> Threads;
- public:
- cmDebuggerThreadManager() = default;
- std::shared_ptr<cmDebuggerThread> StartThread(std::string const& name);
- void EndThread(std::shared_ptr<cmDebuggerThread> const& thread);
- cm::optional<dap::StackTraceResponse> GetThreadStackTraceResponse(
- std::int64_t id);
- };
- } // namespace cmDebugger
|