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

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

skynet學習之skynet_handle

2019-11-11 03:27:52
字體:
來源:轉載
供稿:網友

今天學習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);//保證下標不會超過孔位數量。孔位數量始終是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
亚洲人成网站免费播放| 欧美激情喷水视频| 欧美成人四级hd版| 国产福利视频一区二区| 91成人在线视频| 中文字幕精品国产| 日韩在线播放一区| 精品欧美aⅴ在线网站| 成人亚洲激情网| 亚洲高清在线观看| 亚洲精品视频在线播放| 亚洲欧洲在线视频| 亚洲精品久久在线| 热久久99这里有精品| 亚洲国产一区二区三区四区| 97免费视频在线| 久久躁狠狠躁夜夜爽| 亚洲伊人一本大道中文字幕| 亚洲精品美女久久久| 日韩欧美大尺度| 91视频-88av| 成年人精品视频| 91av在线播放视频| 亚洲精品在线不卡| 91老司机精品视频| 国产精品久久久久久av下载红粉| 日韩精品在线视频观看| 亚洲视频在线播放| 国产精品国模在线| 久久人人爽人人爽人人片av高清| 成人激情综合网| 欧美片一区二区三区| 国产精品视频午夜| 影音先锋欧美在线资源| 亚洲日韩中文字幕在线播放| 国产精品视频yy9099| 日本aⅴ大伊香蕉精品视频| 啪一啪鲁一鲁2019在线视频| 欧美一乱一性一交一视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美日韩亚洲成人| 欧美丰满片xxx777| 青青久久aⅴ北条麻妃| 午夜免费久久久久| 久久精品国产99国产精品澳门| 亚洲欧美国产va在线影院| 性欧美暴力猛交69hd| 日韩视频免费看| 久久视频国产精品免费视频在线| 欧美多人乱p欧美4p久久| 岛国av在线不卡| 成人精品视频在线| 国语自产偷拍精品视频偷| 日本久久久久久久| 国产成人精品免高潮在线观看| 欧美成人免费全部| 国产精选久久久久久| 亚洲精品免费av| 欧美第一黄网免费网站| 九九热精品视频国产| 国外日韩电影在线观看| 日韩视频在线一区| 在线观看91久久久久久| 国产精品网站视频| 亚洲精品动漫久久久久| 久久久久久噜噜噜久久久精品| 影音先锋欧美在线资源| 91国内免费在线视频| 亚洲第一黄色网| 中文字幕亚洲字幕| 欧美成年人视频网站欧美| 欧美午夜精品久久久久久浪潮| 久久中文字幕视频| 欧美激情18p| 上原亚衣av一区二区三区| 亚洲激情第一页| 91av中文字幕| 亚洲天堂网在线观看| 欧美在线影院在线视频| 亚洲欧洲免费视频| 国产精品一区二区三区免费视频| 欧美视频一区二区三区…| 精品国产欧美一区二区三区成人| 九色成人免费视频| 国产精品极品美女在线观看免费| 日韩视频免费看| 波霸ol色综合久久| 国产精品91久久久| 成人在线视频网| 亚洲老头老太hd| 91精品成人久久| 精品无人国产偷自产在线| 欧美激情国产日韩精品一区18| 26uuu另类亚洲欧美日本老年| 久久精品色欧美aⅴ一区二区| 精品欧美aⅴ在线网站| 亚洲网站在线播放| 尤物tv国产一区| 欧美激情亚洲综合一区| 日韩精品中文在线观看| 一区二区欧美日韩视频| 一本一本久久a久久精品牛牛影视| 国产精品96久久久久久又黄又硬| 久久精品99国产精品酒店日本| 欧美成人激情图片网| 操人视频在线观看欧美| 97av在线视频免费播放| 这里只有精品视频| 国产精自产拍久久久久久| 色综合91久久精品中文字幕| 日韩在线播放视频| 成人啪啪免费看| 日韩美女视频在线观看| 伊人精品在线观看| 中文字幕精品国产| 久久久久久久国产| 亚洲欧美在线看| 77777亚洲午夜久久多人| 日本在线精品视频| 久久天天躁狠狠躁夜夜躁| 自拍亚洲一区欧美另类| 国产欧美一区二区三区在线| 97国产一区二区精品久久呦| 亚洲天堂av网| 91亚洲国产成人精品性色| 久久久www成人免费精品| 都市激情亚洲色图| 国产精品狼人色视频一区| 精品国产91久久久久久老师| 17婷婷久久www| 日韩中文在线中文网在线观看| 日韩欧美国产中文字幕| 国模极品一区二区三区| 中文字幕日韩视频| 久久在线精品视频| 国产精品美女无圣光视频| 亚洲第一二三四五区| 九色精品免费永久在线| 国产精品免费电影| 亚洲成人精品视频在线观看| 成人福利视频网| 在线观看成人黄色| 中日韩美女免费视频网站在线观看| 亚洲自拍小视频免费观看| 狠狠综合久久av一区二区小说| 国产日韩一区在线| 成人h视频在线观看播放| 欧美另类精品xxxx孕妇| 亚洲尤物视频网| 久久精品男人天堂| 国产一区二区三区18| 中文字幕亚洲一区二区三区五十路| 亚洲欧洲免费视频| 国产精品青草久久久久福利99| 国产不卡一区二区在线播放| 中文字幕精品一区二区精品| 欧美激情一级二级| 国产美女被下药99| 欧美激情女人20p| 97精品国产97久久久久久春色| 欧美黄色片视频| 日韩精品中文字幕久久臀| 国产精品久久久久久一区二区| 日韩av大片免费看|