亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? threadmanager.h

?? 五行MMORPG引擎系統V1.0
?? H
字號:
/*///////////////////////////////////////////////////////////////////////////////////
線程管理
	包括線程池管理
	線程隊列管理
	線程封裝

	李亦
	2006.6.15
/*///////////////////////////////////////////////////////////////////////////////////

#ifndef _THREADMANAGER_H_
#define _THREADMANAGER_H_

#ifndef _PLATFORMSEMAPHORE_H_
#include "platform/platformMutex.h"
#endif

#ifndef _METHODDISPATCH_H_
#include "server/methodDispatch.h"
#endif

#ifndef _PLATFORMSEMAPHORE_H_
#include "platform/platformSemaphore.h"
#endif

#ifndef _PLATFORMTHREAD_H_
#include "platform/platformThread.h"
#endif


namespace RPGServer
{




/// Platform independent per-thread storage class.
class ThreadStorage
{
   U32 mTlsIndex;
public:
   /// ThreadStorage constructor.
   ThreadStorage();
   /// ThreadStorage destructor.
   ~ThreadStorage();

   /// returns the per-thread stored void pointer for this ThreadStorage.  The default value is NULL.
   void *get();
   /// sets the per-thread stored void pointer for this ThreadStorage object.
   void set(void *data);
};




/// Managing object for a queue of worker threads that pass
/// messages back and forth to the main thread.  ThreadQueue
/// methods declared with the TNL_DECLARE_THREADQ_METHOD macro
/// are special -- if they are called from the main thread,
/// they will be executed on one of the worker threads and vice
/// versa.
class ThreadQueue //: public Object
{
   class ThreadQueueThread : public Thread
   {
      ThreadQueue *mThreadQueue;
      public:
      ThreadQueueThread(ThreadQueue *);
      U32 run();
   };

   friend class ThreadQueueThread;


   Vector<Thread *> mThreads;			/// ThreadQueue工作線程列表 
   Vector<Functor *> mThreadCalls;	/// 工作線程執行函數列表
   Vector<Functor *> mResponseCalls;/// 工作線程響應函數列表

   SemaphoreInstance		mSemaphore;	/// 工作線程工作協調信號管理
	void*						mMutex;		/// 工作線程執行函數調用信號管理

   /// Storage variable that tracks whether this is the main thread or a worker thread.
   ThreadStorage	mStorage;

protected:
   /// 隊列成員訪問存取鎖
   void lock()		{ Mutex::lockMutex(mMutex, true); }
   void unlock()  { Mutex::unlockMutex(mMutex); }


   /// Posts a marshalled call onto either the worker thread call list or the response call list.
   void postCall(Functor *theCall);
   /// Dispatches the next available worker thread call.  Called internally by the worker threads when they awaken from the semaphore.
   void dispatchNextCall();


   /// helper function to determine if the currently executing thread is a worker thread or the main thread.
   bool isMainThread();
   ThreadStorage &getStorage();


   /// called by each worker thread when it starts for subclass initialization of worker threads.
   virtual void threadStart(){}


public:
   /// ThreadQueue constructor.  threadCount specifies the number of worker threads that will be created.
   ThreadQueue(U32 threadCount);
   ~ThreadQueue();

   /// Dispatches all ThreadQueue calls queued by worker threads.  This should
   /// be called periodically from a main loop.
   void dispatchResponseCalls();
};


//////////////////////////////////////////////////////////////
inline bool ThreadQueue::isMainThread() 
{ 
	return (bool) mStorage.get(); 
}
inline ThreadStorage &ThreadQueue::getStorage() 
{ 
	return mStorage; 
}
 



//////////////////////////////////////////////////////////////
/// Declares a ThreadQueue method on a subclass of ThreadQueue.
#define DECLARE_THREADQ_METHOD(func, args) \
   void func args; \
   void func##_body args

/// Declares the implementation of a ThreadQueue method.
#define IMPLEMENT_THREADQ_METHOD(className, func, args, argNames) \
   void className::func args { \
   FunctorDecl<void (className::*)args> *theCall = new FunctorDecl<void (className::*)args>(&className::func##_body); \
   theCall->set argNames; \
   postCall(theCall); \
   }\
   void className::func##_body args


};//RPGServer

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品动漫网站| 欧美三级韩国三级日本一级| 亚洲精品在线观| 国内外成人在线| 久久久亚洲午夜电影| 国产高清无密码一区二区三区| 欧美经典三级视频一区二区三区| 国产精品主播直播| 国产精品嫩草影院com| 99re热视频精品| 午夜欧美视频在线观看| 日韩一级精品视频在线观看| 国产美女av一区二区三区| 中文字幕免费观看一区| 在线免费不卡视频| 日本不卡一区二区三区高清视频| 久久亚洲一级片| eeuss鲁片一区二区三区在线看| 一区二区三区精品视频| 91精品国产欧美一区二区| 国产九九视频一区二区三区| 亚洲欧洲另类国产综合| 欧美老年两性高潮| 国内精品伊人久久久久av影院 | 一本色道亚洲精品aⅴ| 调教+趴+乳夹+国产+精品| 欧美成va人片在线观看| 91麻豆免费看| 韩国av一区二区三区四区| 亚洲免费在线播放| 国产欧美日韩综合| 91啪亚洲精品| 精品综合免费视频观看| 亚洲黄一区二区三区| 欧美成人a在线| 欧洲人成人精品| 国产jizzjizz一区二区| 亚洲国产aⅴ成人精品无吗| 国产欧美一区二区在线观看| 欧美在线色视频| 国产精品1区二区.| 天堂av在线一区| 1区2区3区精品视频| 26uuuu精品一区二区| 欧美日韩一级片网站| aa级大片欧美| 国产传媒久久文化传媒| 免费人成精品欧美精品| 亚洲一区二区三区三| 国产精品久久久久久久久免费樱桃 | 国产精品久久夜| 欧美日韩一卡二卡三卡| 97精品国产露脸对白| 国内精品在线播放| 日韩高清不卡一区二区| 一个色在线综合| 国产精品成人免费在线| 国产视频一区二区在线观看| 欧美精品日韩精品| 色婷婷综合久久久| 成人免费三级在线| 狠狠v欧美v日韩v亚洲ⅴ| 水野朝阳av一区二区三区| 亚洲黄色免费网站| 亚洲免费观看高清完整版在线观看| 久久精品无码一区二区三区| 日韩精品一区二区在线| 欧美精品第1页| 欧美人妇做爰xxxⅹ性高电影| 在线观看www91| 91在线观看免费视频| 不卡视频在线看| 国产99久久精品| 国产91富婆露脸刺激对白| 国产乱子伦视频一区二区三区| 精品在线播放免费| 精品一区二区三区在线观看| 久久精品免费看| 另类人妖一区二区av| 精品亚洲aⅴ乱码一区二区三区| 久久99精品久久久| 韩国在线一区二区| 国产不卡在线视频| 成人91在线观看| 91免费视频网址| 欧美在线播放高清精品| 欧美日韩一级视频| 91精品国产综合久久精品| 91精品国产91久久久久久一区二区| 91精品欧美一区二区三区综合在| 在线不卡的av| 一区二区三区四区在线| 亚洲老司机在线| 亚洲综合在线第一页| 午夜激情一区二区三区| 老汉av免费一区二区三区 | 欧美大黄免费观看| 国产亚洲午夜高清国产拍精品| 国产日产欧美精品一区二区三区| 亚洲欧洲国产日本综合| 午夜精品视频一区| 韩国精品主播一区二区在线观看| 国产999精品久久久久久 | 欧美中文字幕亚洲一区二区va在线 | 欧美日韩日日摸| 91精品国产欧美一区二区18| 久久精品一区四区| 亚洲欧美日韩系列| 日韩国产精品久久久久久亚洲| 国产尤物一区二区| 色婷婷av久久久久久久| 日韩三级视频中文字幕| 国产欧美一区二区精品久导航 | 国产乱码精品1区2区3区| proumb性欧美在线观看| 欧美日韩一级二级| 国产欧美一区二区精品秋霞影院| 亚洲综合av网| 国产精品自在在线| 欧美揉bbbbb揉bbbbb| 国产亚洲欧洲997久久综合 | 欧美日韩免费不卡视频一区二区三区| 欧美一级高清大全免费观看| 亚洲欧洲精品一区二区精品久久久 | 国产一区二区三区日韩| 欧洲精品在线观看| 2020国产精品| 亚洲制服丝袜av| 粉嫩13p一区二区三区| 欧美日韩精品欧美日韩精品| 国产精品视频麻豆| 美女精品自拍一二三四| www.亚洲色图.com| 欧美成人性战久久| 一区二区三区久久| 成人免费精品视频| 欧美成人一级视频| 婷婷丁香激情综合| 色综合久久88色综合天天免费| 欧美成人免费网站| 亚洲成av人片在www色猫咪| 高清不卡一二三区| 精品国免费一区二区三区| 亚洲成人免费在线观看| 国产亚洲精久久久久久| 欧美日韩国产综合久久| 日韩欧美卡一卡二| 亚洲一区二区三区四区中文字幕| 国产传媒欧美日韩成人| 欧美成人伊人久久综合网| 亚洲电影一级片| 色综合天天综合狠狠| 国产精品嫩草99a| 国产乱色国产精品免费视频| 日韩片之四级片| 日本欧美韩国一区三区| 欧美日韩免费不卡视频一区二区三区| 亚洲免费av观看| 97se亚洲国产综合在线| 中文天堂在线一区| 国产999精品久久久久久绿帽| 欧美tk丨vk视频| 久久精品国产一区二区| 91麻豆精品国产91久久久久久| 亚洲成av人片在www色猫咪| 欧美私人免费视频| 亚洲第一二三四区| 精品视频1区2区| 日韩在线观看一区二区| 3d动漫精品啪啪一区二区竹菊| 亚洲一级二级在线| 欧美日韩国产高清一区二区| 天堂va蜜桃一区二区三区| 欧美日韩精品一区二区三区四区| 亚洲bt欧美bt精品777| 日韩一级完整毛片| 成人一道本在线| 亚洲午夜在线视频| 国产精品丝袜在线| 国产欧美一区二区精品性| 日韩黄色小视频| 欧美一区二区日韩| 国内欧美视频一区二区| 欧美不卡一区二区三区| 偷拍一区二区三区| 国产不卡视频在线播放| 国产成人av在线影院| 老司机免费视频一区二区三区| 亚洲国产精品精华液ab| 日韩亚洲欧美综合| 欧美蜜桃一区二区三区| a在线欧美一区| 欧美午夜精品一区二区三区| 中文字幕中文字幕一区| 成人动漫一区二区三区| 日韩欧美一级二级三级| 亚洲国产wwwccc36天堂| 精品美女在线播放| 91亚洲男人天堂| 日韩高清一级片|