学习云风的skynet源代码,简单记录下。void skynet_globalmq_push(struct message_queue * queue) { struct global_queue *q= Q; uint32_t tail = GP(__sync_fetch_and_add(&q->...
分类:
Web程序 时间:
2014-09-06 17:24:23
阅读次数:
228
转:http://www.cnblogs.com/skynet/archive/2010/04/12/1709892.html——工欲善其事必先利其器引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个...
分类:
移动开发 时间:
2014-09-03 14:42:16
阅读次数:
250
当skynet启动的时候,会根据配置文件制定的日志文件来创建一个logger context,具体过程就是找到logger.so动态链接文件,而后调用其logger_create函数(参数是配置的日志文件),而后构建这个服务对应的context(重要的是里面注册了该服务的回调函数_logger())和消息队列,最后执行logger_init函数,把logger的消息队列放入global
que...
分类:
Web程序 时间:
2014-08-27 22:01:28
阅读次数:
332
skynet 利用内置的原子操作来实现的一个读写锁,重点是理解 ”full memory barrier“ ,UNPv2 中利用互斥和条件变量实现的读写锁。前者是在硬件支持的情况下,显得简单明了,站的层次不一样。
源码贴出来:
struct rwlock {
int write;
int read;
};
static inline void
rwlock_in...
分类:
Web程序 时间:
2014-08-26 11:43:26
阅读次数:
284
学习云风的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...
分类:
Web程序 时间:
2014-08-25 21:11:04
阅读次数:
499
转自:http://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html 有删改 1、网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道、FIFO、消息队列) 同步(互斥量、条件变量、读写锁...
分类:
系统相关 时间:
2014-08-17 12:59:52
阅读次数:
293
转 http://www.cnblogs.com/skynet/archive/2010/07/24/1784110.html这个博主里面很多关于mongoose的剖析引言在深入Mongoose源码剖析之前,我们应该清楚web服务器是什么?它提供什么服务?怎样提供服务?使用什么协议?客户端如何唯一标...
分类:
Web程序 时间:
2014-08-16 15:03:10
阅读次数:
264
http://www.cnblogs.com/skynet/p/3372855.html静态库之所以成为【静态库】,是因为在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。创建静态库过程Linux下创建与使用静态库Linux静态库命名规则Linux静态库命名规范,必须是"...
分类:
编程语言 时间:
2014-06-18 18:30:20
阅读次数:
321
转自
作者:吴秦出处:http://www.cnblogs.com/skynet/这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库...
分类:
编程语言 时间:
2014-05-08 23:56:45
阅读次数:
687