
Skynet
文章平均质量分 75
_RTFSC
Linux 下 C/C++ 程序员一枚~~
展开
-
Skynet 源码学习 -- 二级消息队列,Worker 工作线程池, Monitor 。
二级链表构造简介Skynet 为了消息处理实现了一个二级链表:如下图所示 , 第一级链表是一个基于动态开辟节点实现的链表, 每一个节点对应一个服务单元,第二级链表是一个由数组实现的链表(需要时会以2倍的规模扩容),存储的是这个服务单元的所有待处理消息。 图示:功能点 每个节点对应一个独立的服务单元。 加锁 一级链表自带自旋锁,但是仅仅在Push和Pop一个节点的时候加锁即可 二级链表同样自带自旋原创 2015-11-16 17:54:29 · 1808 阅读 · 0 评论 -
Skynet 源码学习 -- 服务ID skynet_handle.c , 服务模块skynet_module.c
服务ID skynet_handle.cID ID的定义是一个 uint32_t 。 ID在一个独立的进程中是唯一的。 ID在多个Harbor组成的Skynet网中是唯一的。 ID的高8位是harbor ID 。 ID的底24为是此服务模块在这个进程中的唯一id。 每个ID对应一个独立的服务模块,拥有在此进程中唯一的服务名字。 服务ID管理者handle_storage 源码struct handl原创 2015-11-17 18:29:22 · 1675 阅读 · 0 评论 -
Skynet 源码学习 -- Socket Server 和 Skynet_socket
异步IO选用底层接口 Linux –> epool 其他Unix变种 –> kevent 宏选择如下 : #ifdef __linux__ #include "socket_epoll.h" #endif#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined (__NetBSD__) #in原创 2015-11-18 17:26:41 · 2897 阅读 · 1 评论