3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/comprehensive/Api.h"
7#include "mc/deps/core/threading/ITaskQueuePort.h"
8#include "mc/deps/core/threading/LocklessQueue.h"
9#include "mc/deps/core/threading/XTaskQueueDispatchMode.h"
16namespace OS {
struct ThreadPoolActionStatus; }
121 virtual ::XTaskQueuePortObject* GetHandle() ;
124 virtual HRESULT QueueItem(
127 void* callbackContext,
128 void (*callback)(
void*,
bool)
132 virtual HRESULT RegisterWaitHandle(
135 void* callbackContext,
136 void (*callback)(
void*,
bool),
144 virtual HRESULT PrepareTerminate(
146 void* callbackContext,
147 void (*callback)(
void*),
152 virtual void CancelTermination(
void* token) ;
155 virtual void Terminate(
void* token) ;
167 virtual bool IsEmpty() ;
170 virtual void WaitForUnwind() ;
179 virtual void SuspendPort() ;
182 virtual void ResumePort() ;
245 void* callbackContext,
246 void (*callback)(
void*,
bool),
254 void* callbackContext,
255 void (*callback)(
void*),
Definition LocklessQueue.h:6
Definition TaskQueuePortImpl.h:19
static MCAPI void ** $vftable()
MCAPI HRESULT $QueueItem(::ITaskQueuePortContext *portContext, uint waitMs, void *callbackContext, void(*callback)(void *, bool))
MCAPI bool AppendEntry(::TaskQueuePortImpl::QueueEntry const &entry, uint64 node)
MCAPI bool $Dispatch(::ITaskQueuePortContext *portContext, uint timeoutInMs)
MCAPI void $CancelTermination(void *token)
MCAPI::XTaskQueuePortObject * $GetHandle()
MCAPI HRESULT $SuspendTermination(::ITaskQueuePortContext *portContext)
MCAPI HRESULT $Attach(::ITaskQueuePortContext *portContext)
static MCAPI void WaitCallback(::_TP_CALLBACK_INSTANCE *instance, void *context, ::_TP_WAIT *wait, ulong waitResult)
MCAPI bool Wait(::ITaskQueuePortContext *portContext, uint timeout)
MCAPI void $ResumeTermination(::ITaskQueuePortContext *portContext)
MCAPI long InitializeWaitRegistration(::TaskQueuePortImpl::WaitRegistration *waitReg)
MCAPI void CancelPendingEntries(::ITaskQueuePortContext *portContext, bool appendToQueue)
MCAPI void $SuspendPort()
MCAPI void $WaitForUnwind()
MCAPI HRESULT $PrepareTerminate(::ITaskQueuePortContext *portContext, void *callbackContext, void(*callback)(void *), void **token)
MCAPI bool AppendWaitRegistrationEntry(::TaskQueuePortImpl::WaitRegistration *waitReg)
MCAPI HRESULT $RegisterWaitHandle(::ITaskQueuePortContext *portContext, void *waitHandle, void *callbackContext, void(*callback)(void *, bool), ::XTaskQueueRegistrationToken *token)
MCAPI TaskQueuePortImpl()
MCAPI void ProcessThreadPoolCallback(::OS::ThreadPoolActionStatus &status)
MCAPI void $UnregisterWaitHandle(::XTaskQueueRegistrationToken token)
MCAPI long Initialize(::XTaskQueueDispatchMode mode)
MCAPI void SubmitPendingCallback()
MCAPI void $Detach(::ITaskQueuePortContext *portContext)
MCAPI void ScheduleTermination(::TaskQueuePortImpl::TerminationEntry *term)
MCAPI void NotifyItemQueued()
MCAPI void $Terminate(void *token)
static MCAPI void EraseQueue(::LocklessQueue<::TaskQueuePortImpl::QueueEntry > *queue)
MCAPI bool DrainOneItem(::OS::ThreadPoolActionStatus &status)
Definition ITaskQueuePortContext.h:16
Definition ThreadPoolActionStatus.h:7
Definition TaskQueuePortImpl.h:50
Definition TaskQueuePortImpl.h:69
Definition TaskQueuePortImpl.h:29
Definition XTaskQueuePortObject.h:5
Definition XTaskQueueRegistrationToken.h:5