亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

skynet學習之skynet_handle

2019-11-11 03:55:48
字體:
來源:轉載
供稿:網友

今天學習skynet_handle文件。

這個文件是管理句柄的。建立skynet_context與skynet_handle之間的唯一映射關系。

即一個sc對應一個唯一的handle。

先看初始化:

void skynet_handle_init(int harbor) {	assert(H==NULL);	struct handle_storage * s = skynet_malloc(sizeof(*H));	s->slot_size = DEFAULT_SLOT_SIZE;	s->slot = skynet_malloc(s->slot_size * sizeof(struct skynet_context *));	memset(s->slot, 0, s->slot_size * sizeof(struct skynet_context *));	rwlock_init(&s->lock);	// reserve 0 for system	s->harbor = (uint32_t) (harbor & 0xff) << HANDLE_REMOTE_SHIFT;	s->handle_index = 1;	s->name_cap = 2;	s->name_count = 0;	s->name = skynet_malloc(s->name_cap * sizeof(struct handle_name));	H = s;	// Don't need to free H}

生成一個handle_storage對象即句柄倉庫結構體。初始化分配DEFAULT_SLOT_SIZE個元素的slot數組。

生成harbor的ID,只能占用高8位。

初始化name數組,暫時不清楚用處,猜測可能是建立一個字符串名與handle之間的映射方便查詢吧。

sc被存放在一個數組中,數組的下標選取是通過hash來計算的。

uint32_tskynet_handle_register(struct skynet_context *ctx) {	struct handle_storage *s = H;	rwlock_wlock(&s->lock);		for (;;) {		int i;		for (i=0;i<s->slot_size;i++) {			uint32_t handle = (i+s->handle_index) & HANDLE_MASK;//HANDLE_MASK用于取低24位,高8位是遠程節點ID			int hash = handle & (s->slot_size-1);//保證下標不會超過孔位數量??孜粩盗渴冀K是2的N次方。			if (s->slot[hash] == NULL) {				s->slot[hash] = ctx;				s->handle_index = handle + 1;//單調遞增,假設了最多不會超過0xffffff個。				rwlock_wunlock(&s->lock);				handle |= s->harbor;				return handle;			}		}		assert((s->slot_size*2 - 1) <= HANDLE_MASK);		struct skynet_context ** new_slot = skynet_malloc(s->slot_size * 2 * sizeof(struct skynet_context *));//雙倍擴充容量		memset(new_slot, 0, s->slot_size * 2 * sizeof(struct skynet_context *));		for (i=0;i<s->slot_size;i++) {			int hash = skynet_context_handle(s->slot[i]) & (s->slot_size * 2 - 1);			assert(new_slot[hash] == NULL);			new_slot[hash] = s->slot[i];		}		skynet_free(s->slot);		s->slot = new_slot;		s->slot_size *= 2;	}}

存儲好后,其他業務就可以用handle來尋找sc了。

struct skynet_context * skynet_handle_grab(uint32_t handle) {	struct handle_storage *s = H;	struct skynet_context * result = NULL;	rwlock_rlock(&s->lock);	uint32_t hash = handle & (s->slot_size-1);	struct skynet_context * ctx = s->slot[hash];	if (ctx && skynet_context_handle(ctx) == handle) {		result = ctx;		skynet_context_grab(result);	}	rwlock_runlock(&s->lock);	return result;}當然,還有回收釋放handle的
intskynet_handle_retire(uint32_t handle)

每個sc在生成的時候,都會調用skynet_handle_register來進行注冊。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品在线免费播放| 国产精品免费观看在线| 久久久精品免费视频| 992tv在线成人免费观看| 国产日韩视频在线观看| 国产综合在线观看视频| 深夜福利日韩在线看| 欧美www视频在线观看| 欧美在线视频观看| 国产激情久久久久| 久久精品一区中文字幕| 国产精品视频自在线| 亚洲精品天天看| 精品久久久久久久久久久久| 青青草国产精品一区二区| 成人女保姆的销魂服务| 久久久久成人网| 日韩在线观看高清| 精品久久久久久国产| 精品成人av一区| 亚洲高清久久网| 91精品久久久久久久久久久| 亚洲天堂成人在线| 91精品国产高清久久久久久| 国产精品永久免费| 国产成人久久久| 久久精品国产v日韩v亚洲| 中文日韩在线观看| 日韩中文综合网| 色爱精品视频一区| 国产精品人人做人人爽| 国语自产精品视频在线看抢先版图片| 久久av红桃一区二区小说| 91精品久久久久久久| 亚洲国产精品小视频| 日韩中文理论片| 欧美另类极品videosbest最新版本| 91精品国产色综合久久不卡98口| 精品成人在线视频| 97碰碰碰免费色视频| 欧美激情在线狂野欧美精品| 国产午夜精品全部视频播放| 中文字幕欧美视频在线| 欧美性xxxxx极品娇小| 国产精品偷伦视频免费观看国产| 国产亚洲精品美女| 亚洲欧洲日产国产网站| 日韩av日韩在线观看| 久久影视电视剧免费网站清宫辞电视| 国内精品久久久久久久| 日韩成人激情在线| 91久久久久久久久久久久久| 亚洲国产婷婷香蕉久久久久久| 欧美自拍视频在线观看| 日韩电影在线观看永久视频免费网站| 亚洲xxxx做受欧美| 日韩高清电影好看的电视剧电影| 成人福利在线观看| 国产精品视频久| 久久视频免费观看| 91在线无精精品一区二区| 久热爱精品视频线路一| 日韩成人av在线| 91精品91久久久久久| 亚洲视频一区二区三区| 国产精品综合网站| 91亚洲精品久久久久久久久久久久| 欧美中文字幕精品| 欧美性xxxx极品hd欧美风情| 精品国产依人香蕉在线精品| 亚洲美女在线观看| 亚洲第一网站免费视频| 久久乐国产精品| 国产97在线观看| 北条麻妃一区二区三区中文字幕| 欧美精品一区二区免费| 亚洲一区国产精品| 欧美日韩亚洲高清| 久久99久国产精品黄毛片入口| 亚洲国产精品va在线看黑人动漫| 国产成人欧美在线观看| 国产精品久久综合av爱欲tv| 成人国产精品色哟哟| 亚洲片在线资源| 大量国产精品视频| 中文字幕在线视频日韩| 色综合五月天导航| 亚洲毛片在线免费观看| 欧美成人自拍视频| 日韩在线欧美在线| 欧美电影电视剧在线观看| 欧美理论片在线观看| 日韩成人中文字幕| 91av在线视频观看| 欧美黑人国产人伦爽爽爽| 亚洲精品免费一区二区三区| 欧美一级淫片丝袜脚交| 国产又爽又黄的激情精品视频| 国产精品久久999| 亚洲精品少妇网址| 国产欧美韩国高清| 97精品国产91久久久久久| 亚洲免费一级电影| 欧美性做爰毛片| 久久激情五月丁香伊人| 亚洲美女av在线| 日韩中文字幕欧美| 性金发美女69hd大尺寸| 久久精品国产亚洲7777| 亚洲国产一区二区三区在线观看| 成人黄色午夜影院| 欧美一级黄色网| 国产精品6699| 国产精品扒开腿做| 亚洲欧美日韩另类| 国产欧美一区二区三区久久人妖| 国产精品精品久久久久久| 中文在线资源观看视频网站免费不卡| 精品久久久久久中文字幕| 色偷偷av亚洲男人的天堂| 欧美精品情趣视频| 日韩av毛片网| 中文字幕精品影院| 日韩在线视频一区| 国产亚洲激情视频在线| 国产v综合ⅴ日韩v欧美大片| 中文字幕在线看视频国产欧美在线看完整| 欧美电影免费观看| 成人精品aaaa网站| 一本色道久久综合狠狠躁篇怎么玩| 欧美性受xxx| 精品欧美aⅴ在线网站| 亚洲欧美日韩国产中文专区| 久久国产精品久久国产精品| 国产精品女人久久久久久| 国产香蕉一区二区三区在线视频| 欧洲成人在线观看| 成人久久一区二区| 亚洲午夜女主播在线直播| 91久久中文字幕| 668精品在线视频| 精品调教chinesegay| 欧美激情喷水视频| 777国产偷窥盗摄精品视频| xxxxx成人.com| 欧美激情图片区| 成人黄色免费在线观看| 欧美多人爱爱视频网站| 久久伊人精品一区二区三区| 国产欧美最新羞羞视频在线观看| 91香蕉电影院| 久久免费国产精品1| 成人日韩av在线| 国产精品一区二区性色av| 中文字幕欧美日韩在线| 疯狂做受xxxx高潮欧美日本| 欧美国产日韩一区二区| 中文日韩在线观看| 国产丝袜一区二区三区免费视频| 国产中文日韩欧美| 97在线看免费观看视频在线观看| 在线视频一区二区| 欧美巨猛xxxx猛交黑人97人| 亚洲视屏在线播放|