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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mythread_win32.c

?? sourceforge歷史版本完整下載: http://sourceforge.net/project/showfiles.php?group_id=202044 提供了基于b樹索引算法的文件數(shù)據(jù)數(shù)據(jù)
?? C
字號:
/*
*
*mythread_win32.c 封裝線程接口 lin shao chuan
*
*/
#include "mythread.h"
#include <assert.h>
#include <process.h>
#include "mylog.h"


enum THREAD_EXCEPTION
{
	THREAD_EC_CANCEL,
};


typedef struct __mythread_t_
{
	//本對象內(nèi)存池標識
	HMYMEMPOOL hm;

	//起始地址與用戶參數(shù)
	MY_THREAD_FUN fun;
	void * userdata;

	//線程id與句柄
	DWORD thr_id;
	HANDLE hthr;
}mythread_t;


static void
ExceptionFilter (EXCEPTION_POINTERS * ep)
{}

static int __stdcall threadfun(void * data)
{
	//運行用戶的線程函數(shù);
	//利用捕捉異常機制自然退出線程

	mythread_t * mt = (mythread_t *)data;
	assert(mt && mt->fun);

	__try
	{
		mt->fun(mt->userdata);
	}
	__except( ExceptionFilter(GetExceptionInformation()) )
	{}

	return 0;
}

static void throw_exception(DWORD ec, DWORD p)
{
	DWORD exceptionInformation = (DWORD) (p);
# pragma warning (disable:4133)
	RaiseException ( ec, 0, 1, &exceptionInformation );
}

static void throw_exception_cancel()
{
	//c代碼,ExitThread是一個安全的函數(shù), 如果c++將會導(dǎo)致析構(gòu)函數(shù)無法調(diào)用
	ExitThread(0);
	//throw_exception(THREAD_EC_CANCEL, 0);

	//never reach
	assert(0);
}

static void mythread_cancel(mythread_t * mt)
{
	//掛起線程
	SuspendThread(mt->hthr);

	{
		//from pthread_win32
		CONTEXT context;
		context.ContextFlags = CONTEXT_CONTROL;
		GetThreadContext( mt->hthr, &context );
# pragma warning (disable:4311)
		context.Eip = (DWORD)throw_exception_cancel;
		SetThreadContext( mt->hthr, &context );
	}

	ResumeThread(mt->hthr);
}


/*
*
*創(chuàng)建線程
*
*/
HMYTHREAD MyThreadConstruct(MY_THREAD_FUN fun, void * data, int bsuspend, HMYMEMPOOL hm)
{
	mythread_t * mt = MyMemPoolMalloc(hm, sizeof(*mt));
	if(NULL == mt)
		return NULL;

	mt->fun = fun;
	mt->userdata = data;
	mt->hm = hm;
	//掛起創(chuàng)建
	mt->hthr = (HANDLE)_beginthreadex(NULL, 0, threadfun, (void *)mt, CREATE_SUSPENDED, &mt->thr_id);

	if(NULL == mt->hthr)
	{
		LOG_WARN(("fail create thread"));

		MyMemPoolFree(hm, mt);
		return NULL;
	}

	if(!bsuspend)
		ResumeThread(mt->hthr);

	return (HMYTHREAD)mt;
}

/*
*
*銷毀線程
*
*/
void MyThreadDestruct(HMYTHREAD ht)
{
	mythread_t * mt = (mythread_t *)ht;
	if(NULL == mt)
		return;

	assert(mt->hthr);

	//利用異常自然退出線程
	mythread_cancel(mt);

	CloseHandle(mt->hthr);

	MyMemPoolFree(mt->hm, mt);
}

/*
*
*運行線程
*
*/
void MyThreadRun(HMYTHREAD ht)
{
	mythread_t * mt = (mythread_t *)ht;
	if(NULL == mt)
		return;

	assert(mt->hthr);

	ResumeThread(mt->hthr);
}

/*
*
*線程掛起
*
*/
void MyThreadSuspend(HMYTHREAD ht)
{
	mythread_t * mt = (mythread_t *)ht;
	if(NULL == mt)
		return;

	assert(mt->hthr);

	SuspendThread(mt->hthr);
}

/*
*
*等待線程退出
*
*/
void MyThreadJoin(HMYTHREAD ht)
{
	mythread_t * mt = (mythread_t *)ht;
	if(NULL == mt)
		return;

	assert(mt->hthr);

	WaitForSingleObject(mt->hthr, INFINITE);
}

/*
*
* 判斷呼叫此函數(shù)的線程是否就是ht本身
* 1:表示是, 0:表示否
*
*/
int MyThreadInMyContext(HMYTHREAD ht)
{
	unsigned long temp = 0;

	mythread_t * mt = (mythread_t *)ht;
	if(NULL == mt)
		return 0;

	temp = GetCurrentThreadId();

	return ((temp == mt->thr_id) ? 1 : 0);
}


















?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩中文字幕1| 亚洲一区二区三区小说| 国产成人免费在线观看| 久久精品一区二区三区不卡牛牛| 国产一区二区福利| 国产片一区二区三区| 91网页版在线| 午夜精品久久一牛影视| 日韩精品专区在线影院重磅| 国内精品免费**视频| 亚洲国产精品t66y| 色综合久久久久综合体桃花网| 亚洲主播在线播放| 欧美成人女星排名| 成人精品免费网站| 日韩高清在线观看| 国产三级一区二区三区| 在线免费观看日本一区| 美脚の诱脚舐め脚责91| 国产精品灌醉下药二区| 欧美一区二区性放荡片| 成人一区二区三区中文字幕| 一卡二卡欧美日韩| 精品成人免费观看| 色欧美乱欧美15图片| 韩国一区二区三区| 亚洲一区在线观看视频| 久久毛片高清国产| 欧美丝袜丝nylons| 国产精品18久久久久久久久久久久 | 国产视频一区二区在线| 色综合色狠狠天天综合色| 捆绑调教一区二区三区| 日韩理论片网站| 精品福利一区二区三区| 色欧美88888久久久久久影院| 久久精品国产免费看久久精品| 国产精品免费久久久久| 日韩丝袜情趣美女图片| 91麻豆免费在线观看| 国产最新精品免费| 午夜在线成人av| 国产精品国产三级国产普通话99| 日韩一区二区三区av| 日本电影欧美片| 成人毛片老司机大片| 免费一区二区视频| 亚洲国产成人tv| 亚洲人成人一区二区在线观看| 精品国产青草久久久久福利| 欧美精品在线观看播放| 日本精品视频一区二区三区| 国产成人精品影院| 精品一区二区三区免费| 天天综合日日夜夜精品| 亚洲精选免费视频| 亚洲女子a中天字幕| 国产精品视频一区二区三区不卡| xfplay精品久久| 日韩午夜在线观看视频| 欧美日韩成人一区二区| 99国产精品久久久久久久久久| 粉嫩嫩av羞羞动漫久久久| 国产原创一区二区| 国产在线观看免费一区| 国精产品一区一区三区mba视频| 男女激情视频一区| 日本不卡一区二区三区| 日韩 欧美一区二区三区| 亚洲 欧美综合在线网络| 亚洲成a人片在线观看中文| 一区二区三区欧美激情| 一区二区三区中文字幕在线观看| 亚洲日本在线天堂| 亚洲乱码中文字幕| 亚洲一级不卡视频| 亚洲成在线观看| 午夜一区二区三区视频| 视频一区二区三区入口| 日韩制服丝袜先锋影音| 久久国产人妖系列| 国产精品一级黄| 99精品视频一区| 欧美在线|欧美| 欧美日韩中文字幕一区| 51精品秘密在线观看| 日韩三级精品电影久久久 | 狂野欧美性猛交blacked| 免费美女久久99| 国产一区二区不卡老阿姨| 国产福利一区二区| 色系网站成人免费| 欧美日韩中字一区| 精品久久久久久久久久久久久久久久久 | 中文在线资源观看网站视频免费不卡| 国产欧美日韩综合| 亚洲欧洲精品一区二区三区| 亚洲一区二区三区国产| 日韩电影网1区2区| 国产传媒日韩欧美成人| 93久久精品日日躁夜夜躁欧美| 欧美在线观看一区二区| 欧美大片日本大片免费观看| 国产欧美精品一区| 一区二区三区高清| 久久99国产精品免费| 成人做爰69片免费看网站| 在线观看国产精品网站| 精品国产乱码久久久久久1区2区| 国产精品萝li| 婷婷综合五月天| 国产精品一级在线| 欧美日韩国产精品成人| 国产午夜精品久久久久久久 | 中文字幕 久热精品 视频在线 | 国产精品视频第一区| 亚洲综合免费观看高清完整版| 久久国产精品一区二区| www.日韩av| 日韩一区二区三免费高清| 综合激情成人伊人| 蜜桃久久久久久| 91黄色激情网站| 久久精品视频网| 日韩和欧美一区二区三区| 99久久夜色精品国产网站| 日韩精品中文字幕一区二区三区| 亚洲图片另类小说| 国产精品主播直播| 欧美狂野另类xxxxoooo| 国产精品福利在线播放| 久草在线在线精品观看| 欧美性猛交一区二区三区精品| 国产精品午夜久久| 欧美videofree性高清杂交| 一区二区三区四区亚洲| 国产盗摄视频一区二区三区| 欧美日本视频在线| 中文字幕中文字幕在线一区| 国产中文一区二区三区| 欧美男男青年gay1069videost| 1024国产精品| 国产激情偷乱视频一区二区三区| 欧美午夜不卡视频| 中文字幕一区av| 国产寡妇亲子伦一区二区| 日韩一区二区在线播放| 亚洲成a人片在线观看中文| 91美女在线视频| 自拍偷拍国产亚洲| 成人激情校园春色| 久久久久久久综合| 国产乱国产乱300精品| 精品免费日韩av| 精品在线视频一区| 精品国产一区二区国模嫣然| 老司机免费视频一区二区 | 日韩免费观看高清完整版| 亚洲成人激情综合网| 欧美性猛交xxxx乱大交退制版| 亚洲女与黑人做爰| 91同城在线观看| 亚洲一区二区三区视频在线| 99re热视频精品| 亚洲激情图片一区| 在线观看日韩一区| 亚洲大片精品永久免费| 6080日韩午夜伦伦午夜伦| 三级一区在线视频先锋 | 国产a视频精品免费观看| 国产欧美精品一区二区三区四区| 国产精品自产自拍| 国产精品美女久久久久久久久| av在线不卡电影| 亚洲久草在线视频| 欧美日韩亚洲丝袜制服| 捆绑变态av一区二区三区| 久久久www免费人成精品| 国产成人av电影在线| 国产精品成人在线观看| 日本乱人伦一区| 免费成人在线观看| 国产日产欧产精品推荐色| 一本色道久久综合狠狠躁的推荐 | 日韩美女视频在线| 国产精品一区二区在线播放| 国产精品白丝在线| 欧美欧美欧美欧美| 国产米奇在线777精品观看| 亚洲天堂成人网| 欧美日韩中字一区| 国产一区二区美女| 成人免费小视频| 91精品国产91久久久久久一区二区 | 中文字幕第一区二区| 色94色欧美sute亚洲13| 蜜桃视频在线观看一区二区| 国产欧美日韩麻豆91| 欧美调教femdomvk| 国产精品一线二线三线|