![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
skynet
文章平均质量分 84
i_i_unlimited
这个作者很懒,什么都没留下…
展开
-
skynet的启动 <1>
skynet skynet的启动 skynet_main中的main函数作为进入点,需将配置文件config路径传进去(因此启动时候命令为:./skynet ./路径/config)。函数中进行全局初始化及信号忽略。将配置作为参数调用skynet_start()函数。配置参数结构如下: struct skynet_config { int thread; // 线程数 int harbor...原创 2018-10-22 20:31:06 · 724 阅读 · 0 评论 -
skynet的消息驱动 <2>
skynet创建的服务通过消息进行驱动,而消息的获取是通过队列。skynet有个全队列,其结构拥有一个头尾指针,并且有个自旋锁,防止push进来的数据过多。 // 全局队列:每个结点是一个消息队列指针,指向服务的消息队列 struct global_queue { struct message_queue *head; struct message_queue *tail; struct s...原创 2019-10-11 14:34:48 · 147 阅读 · 0 评论 -
skynet服务的创建 <3>
一般是调用skynet.newservice(name, …)给.launcher发送一个lua消息类型。 -- 创建一个新的服务, name为服务的脚本名:内部通过call launcher的LAUNCH命令来执行 -- 只有被启动的脚本的 start 函数返回后,这个 API 才会返回启动的服务的地址,这是一个阻塞 API 。 function skynet.newservice(name, ...原创 2019-10-11 14:35:28 · 282 阅读 · 0 评论