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

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

?? threadpriv.c

?? apr-1.2.7.tar.gz源碼 支持svn的需求
?? C
字號:
/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as * applicable. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */#include "apr_arch_threadproc.h"static struct beos_key key_table[BEOS_MAX_DATAKEYS];static struct beos_private_data *beos_data[BEOS_MAX_DATAKEYS];static sem_id lock;APR_DECLARE(apr_status_t) apr_threadkey_private_create(apr_threadkey_t **key,                                       void (*dest)(void *), apr_pool_t *pool){    (*key) = (apr_threadkey_t *)apr_palloc(pool, sizeof(apr_threadkey_t));    if ((*key) == NULL) {        return APR_ENOMEM;    }    (*key)->pool = pool;    		acquire_sem(lock);	for ((*key)->key=0; (*key)->key < BEOS_MAX_DATAKEYS; (*key)->key++){		if (key_table[(*key)->key].assigned == 0){			key_table[(*key)->key].assigned = 1;			key_table[(*key)->key].destructor = dest;			release_sem(lock);			return APR_SUCCESS;		}					}	release_sem(lock);    return APR_ENOMEM;}APR_DECLARE(apr_status_t) apr_threadkey_private_get(void **new, apr_threadkey_t *key){	thread_id tid;	int i, index=0;	tid = find_thread(NULL);	for (i=0;i<BEOS_MAX_DATAKEYS;i++){		if (beos_data[i]->data){			/* it's been used */			if (beos_data[i]->td == tid){				index = i;			}		}	}	if (index == 0){		/* no storage for thread so we can't get anything... */		return APR_ENOMEM;	}	if ((key->key < BEOS_MAX_DATAKEYS) && (key_table)){		acquire_sem(key_table[key->key].lock);		if (key_table[key->key].count){			(*new) = (void*)beos_data[index]->data[key->key];		} else {			(*new) = NULL;		}		release_sem(key_table[key->key].lock);	} else {		(*new) = NULL;	}	return APR_SUCCESS;}APR_DECLARE(apr_status_t) apr_threadkey_private_set(void *priv, apr_threadkey_t *key){	thread_id tid;	int i,index = 0, ret = 0;	tid = find_thread(NULL);		for (i=0; i < BEOS_MAX_DATAKEYS; i++){		if (beos_data[i]->data){			if (beos_data[i]->td == tid){index = i;}		}	}	if (index==0){		/* not yet been allocated */		for (i=0; i< BEOS_MAX_DATAKEYS; i++){			if (! beos_data[i]->data){				/* we'll take this one... */				index = i;				beos_data[i]->data = (const void **)malloc(sizeof(void *) * BEOS_MAX_DATAKEYS);				memset((void *)beos_data[i]->data, 0, sizeof(void *) * BEOS_MAX_DATAKEYS);				beos_data[i]->count = (int)malloc(sizeof(int));				beos_data[i]->td = (thread_id)malloc(sizeof(thread_id));				beos_data[i]->td = tid;			}		}	}	if (index == 0){		/* we're out of luck.. */		return APR_ENOMEM;	}	if ((key->key < BEOS_MAX_DATAKEYS) && (key_table)){		acquire_sem(key_table[key->key].lock);		if (key_table[key->key].count){			if (beos_data[index]->data[key->key] == NULL){				if (priv != NULL){					beos_data[index]->count++;					key_table[key->key].count++;				}			} else {				if (priv == NULL){					beos_data[index]->count--;					key_table[key->key].count--;				}			}			beos_data[index]->data[key->key] = priv;			ret = 1;		} else {			ret = 0;		}		release_sem(key_table[key->key].lock);	}	if (ret)    	return APR_SUCCESS;	return APR_ENOMEM;}APR_DECLARE(apr_status_t) apr_threadkey_private_delete(apr_threadkey_t *key){	if (key->key < BEOS_MAX_DATAKEYS){		acquire_sem(key_table[key->key].lock);		if (key_table[key->key].count == 1){			key_table[key->key].destructor = NULL;			key_table[key->key].count = 0;		}		release_sem(key_table[key->key].lock);	} else {		return APR_ENOMEM;	}	return APR_SUCCESS;}APR_DECLARE(apr_status_t) apr_threadkey_data_get(void **data, const char *key,                                                 apr_threadkey_t *threadkey){    return apr_pool_userdata_get(data, key, threadkey->pool);}APR_DECLARE(apr_status_t) apr_threadkey_data_set(void *data, const char *key,                                                 apr_status_t (*cleanup) (void *),                                                 apr_threadkey_t *threadkey){    return apr_pool_userdata_set(data, key, cleanup, threadkey->pool);}APR_DECLARE(apr_status_t) apr_os_threadkey_get(apr_os_threadkey_t *thekey, apr_threadkey_t *key){    *thekey = key->key;    return APR_SUCCESS;}APR_DECLARE(apr_status_t) apr_os_threadkey_put(apr_threadkey_t **key,                                                apr_os_threadkey_t *thekey, apr_pool_t *pool){    if (pool == NULL) {        return APR_ENOPOOL;    }    if ((*key) == NULL) {        (*key) = (apr_threadkey_t *)apr_pcalloc(pool, sizeof(apr_threadkey_t));        (*key)->pool = pool;    }    (*key)->key = *thekey;    return APR_SUCCESS;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆成人精品| 国产成人综合精品三级| 国产精品嫩草影院com| 国产欧美一区二区精品秋霞影院 | 一区二区欧美精品| 中文字幕日本不卡| 亚洲丝袜另类动漫二区| 亚洲四区在线观看| 亚洲色图制服诱惑| 午夜视频在线观看一区二区| 亚洲成av人综合在线观看| 亚洲电影第三页| 麻豆精品视频在线| 福利一区二区在线观看| 91一区二区在线| 欧美日韩在线亚洲一区蜜芽| 91精品国产色综合久久不卡电影| 日韩欧美国产成人一区二区| 国产无一区二区| 亚洲激情六月丁香| 三级不卡在线观看| 国产麻豆9l精品三级站| 99re这里都是精品| 欧美色精品天天在线观看视频| 欧美一区二区精品久久911| 国产日韩欧美高清| 视频在线在亚洲| 国产一区二区导航在线播放| 91年精品国产| 制服.丝袜.亚洲.另类.中文| 国产精品视频在线看| 日韩不卡一区二区三区| 成人夜色视频网站在线观看| 欧美日韩一区二区电影| 欧美经典三级视频一区二区三区| 亚洲尤物视频在线| 国产精品亚洲成人| 91精品国产综合久久精品| 国产精品视频免费| 看电视剧不卡顿的网站| 91蝌蚪porny九色| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲视频网在线直播| 精久久久久久久久久久| 欧美在线观看你懂的| 日本一区二区久久| 伦理电影国产精品| 色94色欧美sute亚洲线路二 | 在线观看一区二区精品视频| 久久久久久久综合色一本| 亚洲国产精品久久艾草纯爱| 成人免费av资源| 精品日韩99亚洲| 日本麻豆一区二区三区视频| 91蝌蚪国产九色| 国产日韩欧美电影| 久久精品国产亚洲aⅴ | 人人精品人人爱| 欧美性生活久久| 亚洲精品成人在线| 波多野结衣一区二区三区| 久久婷婷国产综合国色天香| 另类小说视频一区二区| 欧美人妇做爰xxxⅹ性高电影| 亚洲日本电影在线| 不卡的av中国片| 中文一区在线播放| 国产传媒日韩欧美成人| 2021久久国产精品不只是精品| 午夜日韩在线电影| 91精品国产综合久久久久久久久久| 亚洲一区二区三区在线播放| 色女孩综合影院| 洋洋av久久久久久久一区| 一本色道综合亚洲| 一区二区三区欧美日韩| 91激情在线视频| 午夜精品一区二区三区三上悠亚| 在线看国产日韩| 首页综合国产亚洲丝袜| 日韩午夜在线观看视频| 另类综合日韩欧美亚洲| 精品精品国产高清a毛片牛牛| 精品亚洲aⅴ乱码一区二区三区| 日韩欧美成人一区| 国产成人在线免费观看| 亚洲欧美综合色| 欧美三级韩国三级日本三斤| 日韩一区精品字幕| 日韩精品一区二区三区三区免费| 国产一区二区精品久久91| 国产精品久久午夜| 欧美日韩在线免费视频| 日韩影院免费视频| 国产欧美一区二区精品久导航| 99精品欧美一区二区蜜桃免费 | 久久精品男人天堂av| 国产成人高清视频| 亚洲欧美一区二区三区国产精品 | 亚洲在线观看免费| 日韩亚洲欧美在线| 国产精品99久久久久久有的能看| 一色桃子久久精品亚洲| 欧美日韩中文字幕精品| 国产一区二区三区免费播放| 国产精品乱码人人做人人爱| 69av一区二区三区| 国产成人综合视频| 性欧美疯狂xxxxbbbb| 国产人成亚洲第一网站在线播放 | 午夜日韩在线观看| 欧美国产综合色视频| 欧美日韩高清不卡| 成人自拍视频在线| 性做久久久久久久久| 国产精品素人一区二区| 91精品国产91久久久久久最新毛片| 粉嫩欧美一区二区三区高清影视 | 最新日韩在线视频| 欧美一二三四在线| 91小视频免费观看| 国产精品一区二区三区99| 亚洲综合999| 国产精品另类一区| 久久蜜桃av一区精品变态类天堂 | 日本电影亚洲天堂一区| 蜜桃av噜噜一区二区三区小说| 国产精品久久久久久久久图文区| 日韩欧美国产一区二区三区| 色婷婷综合中文久久一本| 久久99精品久久久久| 亚洲不卡av一区二区三区| 中文字幕中文在线不卡住| 久久久久久一级片| 日韩一级大片在线观看| 欧美色爱综合网| 91久久精品日日躁夜夜躁欧美| 风间由美中文字幕在线看视频国产欧美| 偷拍日韩校园综合在线| 亚洲电影你懂得| 亚洲国产精品欧美一二99| 亚洲视频免费观看| 亚洲区小说区图片区qvod| 国产欧美精品区一区二区三区| 久久这里只有精品6| 欧美v日韩v国产v| 精品免费一区二区三区| 欧美一区二区三区四区久久| 欧美色视频在线| 欧美剧情片在线观看| 欧美专区在线观看一区| 欧洲视频一区二区| 欧美性极品少妇| 在线播放视频一区| 91精品国产福利在线观看| 在线电影院国产精品| 欧美日韩国产影片| 欧美剧情片在线观看| 欧美一级久久久| 精品国产sm最大网站免费看| 欧美成人一区二区| 国产日韩精品一区二区浪潮av | 成人教育av在线| 91啪九色porn原创视频在线观看| 91蜜桃婷婷狠狠久久综合9色| 99re66热这里只有精品3直播 | 欧美日韩视频专区在线播放| 欧美人与性动xxxx| 精品国产一区二区三区av性色| 欧美精品一区二区三区蜜臀| 久久久国产午夜精品| 亚洲婷婷国产精品电影人久久| 亚洲精品日产精品乱码不卡| 性欧美疯狂xxxxbbbb| 麻豆91免费看| 成人免费看的视频| 欧美亚洲国产一区在线观看网站 | 国产乱子轮精品视频| av中文字幕不卡| 欧美三级韩国三级日本三斤| 欧美成人video| 国产精品国产成人国产三级 | 欧美电影免费观看高清完整版在线 | 精品视频一区二区三区免费| 欧美mv和日韩mv国产网站| 欧美激情一区二区三区蜜桃视频| 亚洲卡通动漫在线| 久久99精品国产麻豆婷婷| 成人综合在线观看| 欧美性感一区二区三区| 精品国产一二三区| 亚洲一区二区三区视频在线播放| 看片的网站亚洲| 在线观看免费亚洲| 国产欧美一区二区精品性色| 亚洲国产人成综合网站| 成人精品视频一区二区三区尤物| 欧美日韩和欧美的一区二区| 国产精品久久久久久久久免费桃花| 日韩av中文字幕一区二区|