Skynet
文章平均质量分 75
vonzhou
这个作者很懒,什么都没留下…
展开
-
skynet源码学习 - 从全局队列中弹出/压入一个消息队列过程
学习云风的skynet源码,简单记录下。void skynet_globalmq_push(struct message_queue * queue) { struct global_queue *q= Q; uint32_t tail = GP(__sync_fetch_and_add(&q->tail,1)); // only one thread can set the sl原创 2014-08-25 20:55:05 · 1879 阅读 · 0 评论 -
skynet源码学习 - 读写锁实现
skynet 利用内置的原子操作来实现的一个读写锁,重点是理解 ”full memory barrier“ ,UNPv2 中利用互斥和条件变量实现的读写锁。前者是在硬件支持的情况下,显得简单明了,站的层次不一样。源码贴出来:struct rwlock { int write; int read;};static inline voidrwlock_in原创 2014-08-26 10:35:31 · 3070 阅读 · 1 评论 -
skynet源码学习 - logger服务的工作原理
当skynet启动的时候,会根据配置文件制定的日志文件来创建一个logger context,具体过程就是找到logger.so动态链接文件,而后调用其logger_create函数(参数是配置的日志文件),而后构建这个服务对应的context(重要的是里面注册了该服务的回调函数_logger())和消息队列,最后执行logger_init函数,把logger的消息队列放入global que原创 2014-08-27 21:36:50 · 4074 阅读 · 0 评论