📄 cthreadimp.h
字号:
/*____________________________________________________________________________
Copyright (C) 2002 PGP Corporation
All rights reserved.
$Id: CThreadImp.h,v 1.3 2002/08/06 20:10:37 dallen Exp $
____________________________________________________________________________*/
#ifndef Included_CThreadImp_h // [
#define Included_CThreadImp_h
#include "pgpClassesConfig.h"
#include "CImp.h"
#include "CLookasideList.h"
#include "CQueue.h"
#include "CSemaphore.h"
#include "CSpinLock.h"
#include "CThread.h"
_PGP_BEGIN
// Class CThreadImp
class CThreadImp : public CImp
{
friend class CThread;
private:
struct ThreadCallbackInfo;
public:
~CThreadImp();
protected:
CThreadImp();
PGPBoolean IsRunning() const {return mIsRunning;}
SMART_ERROR StartThread(PGPUInt32 maxQueuedRequests);
void KillThread();
SMART_ERROR PerformAsyncCallback(CThread::CallbackFunc callbackFunc,
void *refPtr);
SMART_ERROR PerformSyncCallback(CThread::CallbackFunc callbackFunc,
void *refPtr);
protected:
CQueue<ThreadCallbackInfo> mTaskQueue;
CArray<ThreadCallbackInfo> mTaskPool;
CSpinLock mTaskQueueLock;
CSpinLock mTaskPoolLock;
CSemaphore mExitSemaphore;
CSemaphore mTaskSemaphore;
PGPBoolean mIsRunning;
PGPBoolean mShouldWeExit;
virtual SMART_ERROR StartOsThread() = 0;
ThreadCallbackInfo * GetFromPool();
void ReleaseToPool(ThreadCallbackInfo *pTCI);
PGPBoolean MainThreadLoop();
};
_PGP_END
#endif // ] Included_CThreadImp_h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -