22 friend struct PoolTaskScheduler;
28 std::weak_ptr<AsyncTaskRunnerPool> m_poolPtr;
31 void virtual _OnEmpty ()
override
33 if (
auto pool = m_poolPtr.lock ())
35 pool->OnSchedulerEmpty ();
40 NotifyingTaskScheduler (std::shared_ptr<AsyncTaskRunnerPool> pool) : m_poolPtr (pool) {}
42 virtual ~NotifyingTaskScheduler () { }
46 bool m_initializeFlag;
78 std::shared_ptr<IAsyncTaskRunnerFactory> runnerFactory =
nullptr
90 BENTLEYDLL_EXPORT virtual void Push (std::shared_ptr<AsyncTask> task, std::shared_ptr<AsyncTask> parentTask,
AsyncTask::Priority priority = AsyncTask::Priority::Inherited)
override;
Contains a UTF-8 encoded string.
Definition: WString.h:275
#define BENTLEYDLL_EXPORT
Definition: Bentley.h:249
Utf8String m_name
Definition: AsyncTaskRunnerPool.h:51
BeMutex m_thisPtrMutex
Definition: AsyncTaskRunnerPool.h:62
bvector< std::shared_ptr< ITaskRunner > > m_runners
Definition: AsyncTaskRunnerPool.h:54
int m_runnerCount
Definition: AsyncTaskRunnerPool.h:50
std::shared_ptr< AsyncTaskRunnerPool > m_thisPtr
Definition: AsyncTaskRunnerPool.h:61
std::shared_ptr< ITaskScheduler > m_taskScheduler
Definition: AsyncTaskRunnerPool.h:57
#define BEGIN_BENTLEY_TASKS_NAMESPACE
Definition: Tasks.h:13
Priority
Definition: AsyncTask.h:49
A synchronization primitive that can be used to protect shared data from being simultaneously accesse...
Definition: BeThread.h:57
Definition: TaskScheduler.h:21
std::shared_ptr< IAsyncTaskRunnerFactory > m_runnerFactory
Definition: AsyncTaskRunnerPool.h:55
Definition: AsyncTaskRunnerPool.h:19
Utf8Char const * Utf8CP
Definition: Bentley.h:229
std::shared_ptr< PackagedAsyncTask< T >> AsyncTaskPtr
Definition: AsyncTask.h:282
#define END_BENTLEY_TASKS_NAMESPACE
Definition: Tasks.h:14
Definition: TaskScheduler.h:77
bool m_started
Definition: AsyncTaskRunnerPool.h:52
std::shared_ptr< ITaskScheduler > m_defaultWorkerThreadPool
Definition: AsyncTaskRunnerPool.h:59