skynet
riverwang1988
爱生活,爱coding
展开
-
skynet给集群中的一个节点配置多个通道
在skynet框架中使用cluster模式,经常有消息在节点之间传递。大部分情况,我们在节点A和节点B之间只需要建立一个连接通道,但是在有些时候我们希望让一些比较独立的业务能占用一条单独的通道进行处理,不希望跟到正常的业务逻辑去抢通道资源。这个时候,我们就需要为某个节点配置多个通道了。 比如,我们要在节点A中再开辟一条连接连通节点B的通道,由于一条通道就是一条tcp连接,所以原创 2016-12-17 10:21:18 · 1639 阅读 · 1 评论 -
skynet学习之spinlock.h
今天学习了spinlock文件。这是一个关于锁的定义。云风大神提供了两种支持,你可以根据宏USE_PTHREAD_LOCK来选择锁的方式。这两张这次都是通过宏和定义内联函数的方式实现的。如果定义了USE_PTHREAD_LOCK:则引用pthread.h,使用linux系统自带的线程库里的pthread_mutex_xxxx互斥锁API。如果未定义USE_PTHREAD_LOCK:原创 2017-02-06 14:59:52 · 712 阅读 · 0 评论 -
skynet学习之环境变量skynet_env
今天学习skynet_env模块。这个模块是用于存储节点启动配置文件config.xxx里的变量的。模块提供了设置变量,获取变量,初始化等操作。模块是通过一个独立的lua_State来操作变量的,节点启动时,解析文件,然后把数据存到这个虚拟机中,当lua代码调用skynet.getenv时,就从虚拟机中获取返回给lua层。由于可以实时动态的读写变量,所以还加了锁来控制临界区。原创 2017-02-06 15:40:06 · 1798 阅读 · 0 评论 -
skynet学习之skynet_handle
今天学习skynet_handle文件。这个文件是管理句柄的。建立skynet_context与skynet_handle之间的唯一映射关系。即一个sc对应一个唯一的handle。先看初始化:void skynet_handle_init(int harbor) { assert(H==NULL); struct handle_storage * s = skynet_mal原创 2017-02-07 09:34:17 · 607 阅读 · 0 评论 -
skynet学习之skynet_monitor
今天学习skynet_monitor。skynet_monitor主要用于监测skynet_context在处理消息时是否陷入死循环。struct skynet_monitor;struct skynet_monitor * skynet_monitor_new();//新建一个监视器void skynet_monitor_delete(struct skynet_monitor *原创 2017-02-07 11:20:40 · 1123 阅读 · 0 评论