llvm/lldb/include/lldb/Target/Queue.h

//===-- Queue.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_QUEUE_H
#define LLDB_TARGET_QUEUE_H

#include <string>
#include <vector>

#include "lldb/Target/QueueItem.h"
#include "lldb/lldb-enumerations.h"
#include "lldb/lldb-forward.h"
#include "lldb/lldb-private.h"

namespace lldb_private {

// Queue:
// This class represents a libdispatch aka Grand Central Dispatch queue in the
// process.
//
// A program using libdispatch will create queues, put work items
// (functions, blocks) on the queues.  The system will create / reassign
// pthreads to execute the work items for the queues.  A serial queue will be
// associated with a single thread (or possibly no thread, if it is not doing
// any work).  A concurrent queue may be associated with multiple threads.

class Queue : public std::enable_shared_from_this<Queue> {};

} // namespace lldb_private

#endif // LLDB_TARGET_QUEUE_H