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

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

?? cj_semaphore.c

?? 堆棧等代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
		{
			//YCJBG_PUSH_ERROR(109, "Semaphore release error");
		}
		else
		{
			return YCJOK;
		}
	}

	if (inc_flag == 1)
	{
		YCJBG_PUSH_ERROR(134, "Semaphore release timeout error");

		// printf("\n	%s\n","Semaphore release timeout error -- CJSEInc");

		inc_flag = 0;			// 恢復信號 SIGALRM 標記

		return YCJSERCODE_TIMEOUT;
	}
#endif
	return YCJOK;
}

/*****************************************************************************/
/*                                                                           */
/*  函數名:CJSEDec                                                          */
/*  創建人:王克鋒                                                           */
/*  日  期:2005-03-03                                                       */
/*  接  口:1.	PTCJSEStru v_ss	信號燈結構指針                               */
/*			2.	int v_sno	信號燈序號                                       */
/*			3.	unsigned int v_val	信號燈減少的數值                         */
/*			4.	PTCJEMStack v_stack	錯誤堆棧指針                             */
/*  返  回:YCJOK:成功;YCJERROR:失敗                                      */
/*  描  述:指定信號燈執行"減"                                               */
/*                                                                           */
/*                                                                           */
/*  修改人:                                                                 */
/*  日  期:                                                                 */
/*  描  述:                                                                 */
/*                                                                           */
/*****************************************************************************/
static void dec_sem_handle(int signo)
{
	dec_flag = 1;
}

int CJSEDec(PTCJSEStru v_ss, TCJUINT4 v_sno, TCJUINT4 v_val, 
	TCJUINT4 v_timeout, PTCJEMStack v_stack)
{
	if ( v_val == 0 ) return YCJOK;

#ifdef YCJPLAT_WINDOWS
	char sErrMsg[1024]; int i;
	for (i=0; i<v_sno; i++)
	{
		if (WaitForSingleObject(v_ss->hsem[v_sno],INFINITE)!=WAIT_OBJECT_0)
		{
			GetLastErrMsg(sErrMsg, 1024);
			YCJBG_PUSH_ERROR(124, "Semaphore wait error");
			return YCJERROR;
		}
	}
#else
	signal(SIGALRM, dec_sem_handle);
	alarm(v_timeout);

	struct sembuf sops;
	if (v_ss==NULL || v_sno >= v_ss->cnt) return YCJERROR;


	sops.sem_num = v_sno;
	sops.sem_op = - v_val;
	sops.sem_flg = SEM_UNDO;

	dec_flag=0;
	while( dec_flag==0 )
	{
		if(dec_flag==1) break;		// 信號 SIGALRM 到達

		if ( semop(v_ss->hsem,&sops,1)==-1 )
		{
			//YCJBG_PUSH_ERROR(134, "Semaphore wait error");
		}
		else
		{
			return YCJOK;
		}
	}

	if (dec_flag == 1)
	{
		YCJBG_PUSH_ERROR(134, "Semaphore wait timeout error");

		// printf("\n	%s\n","Semaphore wait timeout error -- CJSEDec");

		dec_flag = 0 ;			// 恢復信號 SIGALRM 標記

		return YCJSERCODE_TIMEOUT;
	}
#endif
	return YCJOK;
}

/*****************************************************************************/
/*                                                                           */
/*  函數名:CJSESetVal                                                       */
/*  創建人:王克鋒                                                           */
/*  日  期:2005-03-03                                                       */
/*  接  口:1.	PTCJSEStru v_ss	信號燈結構指針                               */
/*			2.	int v_sno	信號燈序號                                       */
/*			3.	int v_val	信號燈設定的數值                                 */
/*			4.	PTCJEMStack v_stack	錯誤堆棧指針                             */
/*  返  回:YCJOK:成功;YCJERROR:失敗                                      */
/*  描  述:設置指定信號燈的當前值                                           */
/*                                                                           */
/*                                                                           */
/*  修改人:                                                                 */
/*  日  期:                                                                 */
/*  描  述:                                                                 */
/*                                                                           */
/*****************************************************************************/
int CJSESetVal(PTCJSEStru v_ss, TCJUINT4 v_sno, int v_val,PTCJEMStack v_stack)
{
#ifdef YCJPLAT_WINDOWS
#else
	SEMUN arg;
	arg.val=v_val;
	if (v_ss==NULL || v_sno >= v_ss->cnt) return YCJERROR;

	if (semctl(v_ss->hsem, v_sno, SETVAL, arg)==-1)
	{
		YCJBG_PUSH_ERROR(149, "Semaphore setval error");
		return YCJERROR;
	}
#endif
	return YCJOK;
}

/*****************************************************************************/
/*                                                                           */
/*  函數名:CJSEGetVal                                                       */
/*  創建人:王克鋒                                                           */
/*  日  期:2005-03-03                                                       */
/*  接  口:1.	PTCJSEStru v_ss	信號燈結構指針                               */
/*			2.	int v_sno	信號燈序號                                       */
/*			3.	int * v_val	返回信號燈的當前值                               */
/*			4.	PTCJEMStack v_stack	錯誤堆棧指針                             */
/*  返  回:YCJOK:成功;YCJERROR:失敗                                      */
/*  描  述:設置指定信號燈的當前值                                           */
/*                                                                           */
/*                                                                           */
/*  修改人:                                                                 */
/*  日  期:                                                                 */
/*  描  述:                                                                 */
/*                                                                           */
/*****************************************************************************/
int CJSEGetVal(PTCJSEStru v_ss, TCJUINT4 v_sno, int * v_val,
	PTCJEMStack v_stack)
{
#ifdef YCJPLAT_WINDOWS
	*v_val=0;
#else
	SEMUN arg;
	if (v_ss==NULL || v_sno >= v_ss->cnt) return YCJERROR;

	*v_val=semctl(v_ss->hsem, v_sno, GETVAL, arg);
	if (*v_val==-1)
	{
		YCJBG_PUSH_ERROR(165, "Semaphore getval error");
		return YCJERROR;
	}
#endif
	return YCJOK;
}

/*****************************************************************************/
/*                                                                           */
/*  函數名:CJSEDestroy                                                      */
/*  創建人:王克鋒                                                           */
/*  日  期:2005-03-03                                                       */
/*  接  口:	1.	PTCJSEStru v_ss	信號燈結構指針                           */
/*		2.	PTCJEMStack v_stack	錯誤堆棧指針                                 */
/*  返  回:YCJOK:成功;YCJERROR:失敗                                      */
/*  描  述:銷毀信號燈                                                       */
/*                                                                           */
/*                                                                           */
/*  修改人:                                                                 */
/*  日  期:                                                                 */
/*  描  述:                                                                 */
/*                                                                           */
/*****************************************************************************/
int CJSEDestroy(PTCJSEStru v_ss, PTCJEMStack v_stack)
{
#ifdef YCJPLAT_WINDOWS
	int i, n=0;
	for (i=0; i<v_ss->cnt; i++) if (CloseHandle(v_ss->hsem[i])) n++;
	free(v_ss->hsem);
	return n>v_cnt?YCJOK:YCJERROR;
#else
	SEMUN arg; arg.val = 0;
	if (v_ss==NULL) return YCJERROR;

	if (v_ss->hsem<0) return YCJOK;
	return semctl(v_ss->hsem, 0, IPC_RMID, arg)==-1?YCJERROR:YCJOK;
#endif
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产综合色| 欧美无乱码久久久免费午夜一区| 国产精品九色蝌蚪自拍| 日韩欧美一级二级| 日韩一区二区三区在线| 在线播放视频一区| 91麻豆精品国产91久久久久久久久 | 粉嫩在线一区二区三区视频| 九九九精品视频| 国模大尺度一区二区三区| 久久精品国产亚洲a| 狠狠色丁香婷婷综合| 国产不卡在线视频| 91婷婷韩国欧美一区二区| 色香蕉久久蜜桃| 欧美日韩国产免费| 精品国产制服丝袜高跟| 久久久精品国产99久久精品芒果| 久久精品水蜜桃av综合天堂| 亚洲欧洲精品一区二区三区| 亚洲另类在线视频| 午夜一区二区三区视频| 亚洲丶国产丶欧美一区二区三区| 性做久久久久久| 精品影视av免费| voyeur盗摄精品| 欧美亚洲一区二区三区四区| 欧美老人xxxx18| 久久久久久电影| 一区二区三区四区高清精品免费观看 | 懂色一区二区三区免费观看 | 欧美日韩在线免费视频| 欧美一区在线视频| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产精品18久久久久| av不卡在线播放| 日韩视频国产视频| 国产精品白丝在线| 蜜臀av性久久久久蜜臀av麻豆| 国产原创一区二区三区| 97久久精品人人爽人人爽蜜臀| 欧美亚洲国产怡红院影院| 欧美精品一区二区在线播放| 亚洲免费视频成人| 国产在线不卡一区| 欧美日本韩国一区二区三区视频| 国产亚洲综合性久久久影院| 亚瑟在线精品视频| 91色乱码一区二区三区| 日韩一区国产二区欧美三区| 亚洲欧美视频在线观看| 激情都市一区二区| 欧美精品v国产精品v日韩精品| 国产午夜精品理论片a级大结局| 亚洲午夜在线观看视频在线| 成人永久看片免费视频天堂| 日韩一区二区三区视频在线 | 欧美一区二区视频在线观看2022| 国产精品久久久久aaaa樱花 | 日韩美女久久久| 激情综合色综合久久| 欧美日韩视频不卡| 亚洲激情在线激情| 91亚洲精品久久久蜜桃网站| 国产日韩欧美精品综合| 紧缚奴在线一区二区三区| 91.麻豆视频| 日日夜夜精品视频天天综合网| 91丨国产丨九色丨pron| 一区二区中文字幕在线| 成人黄动漫网站免费app| 久久午夜色播影院免费高清| 九九在线精品视频| 精品国产91洋老外米糕| 免费一区二区视频| 日韩一区二区在线看片| 五月综合激情婷婷六月色窝| 欧美视频精品在线观看| 亚洲午夜精品久久久久久久久| 99精品久久久久久| 综合在线观看色| 91传媒视频在线播放| ●精品国产综合乱码久久久久| www.激情成人| 午夜精品久久久久久久久久久| 亚洲欧美在线视频观看| 亚洲色图色小说| 亚洲午夜免费福利视频| 国产一区二区毛片| 国产一区不卡精品| 国内成人精品2018免费看| 国产毛片精品国产一区二区三区| 奇米精品一区二区三区四区| 日韩一区有码在线| 久久综合丝袜日本网| 精品在线观看视频| a亚洲天堂av| 久久综合久久综合久久综合| 国产精品一区二区果冻传媒| 日韩和欧美一区二区| 蜜臂av日日欢夜夜爽一区| 狠狠色综合色综合网络| 99久久99久久综合| 日韩免费观看高清完整版| 亚洲欧美日韩中文字幕一区二区三区| 综合久久国产九一剧情麻豆| 国产最新精品免费| 欧美性感一区二区三区| 欧美日韩精品欧美日韩精品一| 麻豆精品精品国产自在97香蕉| 免费高清在线一区| 欧美中文字幕久久| 久久先锋资源网| 亚洲午夜私人影院| 99国产精品一区| 国产亚洲成aⅴ人片在线观看| 亚洲狠狠丁香婷婷综合久久久| 精品一区二区免费| 欧美亚洲综合另类| 夜夜嗨av一区二区三区网页| 国产又黄又大久久| 精品久久久三级丝袜| 秋霞国产午夜精品免费视频| 欧美性videosxxxxx| 亚洲免费观看视频| 91福利社在线观看| 最新国产の精品合集bt伙计| 成人激情小说网站| 久久精品欧美日韩精品| 久久99精品久久久久久| 中文字幕一区日韩精品欧美| 一区二区三区色| 欧美电影在线免费观看| 国产精品一区二区视频| 亚洲一区二区av电影| 国产欧美一区二区三区在线老狼 | 欧美男男青年gay1069videost| 欧洲一区二区三区在线| 亚洲欧美一区二区三区极速播放| 国产精品综合二区| www.99精品| 欧美高清视频不卡网| 99久久精品一区| 中文天堂在线一区| 久久影院午夜片一区| 欧美日本不卡视频| 色琪琪一区二区三区亚洲区| 成人av电影在线| 国产成人精品在线看| 久久66热偷产精品| 理论电影国产精品| 美国毛片一区二区三区| 午夜精品视频在线观看| 欧美日韩精品欧美日韩精品| 日韩专区欧美专区| 中文子幕无线码一区tr| 亚洲免费毛片网站| 欧美精品一区二区三区四区| 欧美亚洲图片小说| 99精品国产99久久久久久白柏| 一本大道久久a久久精品综合| 成人动漫中文字幕| 国产精品视频第一区| eeuss鲁片一区二区三区| 中文字幕一区不卡| 色乱码一区二区三区88| 亚洲制服欧美中文字幕中文字幕| 91免费观看视频在线| 亚洲一级不卡视频| 欧美一级一区二区| 精品国产人成亚洲区| 日日夜夜免费精品视频| 中文子幕无线码一区tr| 亚洲男人天堂av网| 一本大道av一区二区在线播放| 国产精品国产三级国产普通话99| 国产乱码精品一区二区三区五月婷| 日韩精品专区在线影院重磅| 国产综合色产在线精品| 欧美激情一区二区三区不卡| av电影在线观看一区| 亚洲人成7777| 精品少妇一区二区三区日产乱码| 精品一区二区三区日韩| 精品国产sm最大网站| 99免费精品视频| 裸体健美xxxx欧美裸体表演| 国产女人水真多18毛片18精品视频| av在线这里只有精品| 久久99久久99| 日本视频免费一区| 亚洲美女偷拍久久| 久久人人爽爽爽人久久久| 欧美日韩免费高清一区色橹橹 | 亚洲成人动漫在线观看| 欧美国产欧美综合| 亚洲精品一线二线三线无人区| 日本高清不卡一区| eeuss鲁片一区二区三区在线看| 精品少妇一区二区三区日产乱码|