3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/container/MovePriorityQueue.h"
7#include "mc/deps/core/threading/BackgroundTaskBase.h"
8#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
9#include "mc/deps/profiler/ThreadFrameType.h"
10#include "mc/platform/brstd/flat_set.h"
17namespace Bedrock::Threading {
class Mutex; }
41 WorkerPool& operator=(WorkerPool
const&);
42 WorkerPool(WorkerPool
const&);
48 virtual ~WorkerPool() ;
62 MCNAPI ::std::vector<::std::thread::id> getThreadIds()
const;
65 MCNAPI
void queue(::std::shared_ptr<::BackgroundTaskBase> task,
bool queueImmediate);
67 MCNAPI uint64
size()
const;
69 MCNAPI ::std::shared_ptr<::BackgroundTaskBase>
tryPop(
int minPriority);
83 MCNAPI static ::brstd::flat_set<::WorkerPool*, ::std::less<::WorkerPool*>, ::std::vector<::WorkerPool*>>&
Definition BackgroundTaskBase.h:16
Definition EnableNonOwnerReferences.h:7
Definition Scheduler.h:15
MCAPI void queue(::std::shared_ptr<::BackgroundTaskBase > task, bool queueImmediate)
MCAPI void * $ctor(::std::string_view name, ::Core::Profile::ThreadFrameType frameType, ::WorkerPoolConfig const &config)
MCAPI WorkerPool(::std::string_view name, ::Scheduler &owner)
static MCAPI void ** $vftable()
MCAPI ::std::shared_ptr<::BackgroundTaskBase > tryPop(int minPriority)
MCAPI WorkerPool(::std::string_view name, ::Core::Profile::ThreadFrameType frameType, ::WorkerPoolConfig const &config)
static MCAPI ::Bedrock::Threading::Mutex & sAllPoolsMutex()
static MCAPI ::brstd::flat_set<::WorkerPool *, ::std::less<::WorkerPool * >, ::std::vector<::WorkerPool * > > & sAllPools()
static MCAPI void _unregisterPool(::WorkerPool &pool)
MCAPI uint64 size() const
static MCAPI void _registerPool(::WorkerPool &pool)
MCAPI bool _checkPendingWork()
MCAPI void * $ctor(::std::string_view name, ::Scheduler &owner)
Definition WorkerPoolConfig.h:5