DPCQueue
using BKernel::DPCQueue;
class DPCQueue;
virtual void DoDPC(DPCQueue* queue) = 0;
friend class DPCQueue;
DPCQueue* fInQueue;
FunctionDPCCallback(DPCQueue* owner);
virtual void DoDPC(DPCQueue* queue);
DPCQueue* fOwner;
class DPCQueue {
DPCQueue();
~DPCQueue();
static DPCQueue* DefaultQueue(int priority);
virtual void DoDPC(DPCQueue* queue);
virtual void DoDPC(DPCQueue* queue);
virtual void DoDPC(DPCQueue* queue);
DPCQueue::DefaultQueue(int priority)
DPCQueue::Init(const char* name, int32 priority, uint32 reservedSlots)
DPCQueue::Close(bool cancelPending)
DPCQueue::Add(DPCCallback* callback)
DPCQueue::Add(void (*function)(void*), void* argument)
static DPCQueue sNormalPriorityQueue;
static DPCQueue sHighPriorityQueue;
static DPCQueue sRealTimePriorityQueue;
DPCQueue::Cancel(DPCCallback* callback)
DPCQueue::Recycle(FunctionDPCCallback* callback)
DPCQueue::_ThreadEntry(void* data)
return ((DPCQueue*)data)->_Thread();
DPCQueue::_Thread()
FunctionDPCCallback::FunctionDPCCallback(DPCQueue* owner)
new(&sNormalPriorityQueue) DPCQueue;
new(&sHighPriorityQueue) DPCQueue;
new(&sRealTimePriorityQueue) DPCQueue;
FunctionDPCCallback::DoDPC(DPCQueue* queue)
DPCQueue::DPCQueue()
DPCQueue::~DPCQueue()
/*static*/ DPCQueue*
TeamSignalEvent::DoDPC(DPCQueue* queue)
ThreadSignalEvent::DoDPC(DPCQueue* queue)
DPCQueue::DefaultQueue(B_NORMAL_PRIORITY)->Add(this);
CreateThreadEvent::DoDPC(DPCQueue* queue)
DPCQueue::DefaultQueue(B_NORMAL_PRIORITY)->Add(this);