- 博客(7)
- 资源 (7)
- 收藏
- 关注
原创 记录lua的table转string一个问题
最近的项目开发中发现原有代码的table2Str函数实现不对,一时偷懒从网上百度了一下。选中了http://blog.csdn.net/xiaodan007/article/details/7096718这个地址的代码用到了项目中。 在项目中的使用,将table转化为string后,数据有丢失,追踪,发现是这个实现有问题。 在形如 { {aaa=1},{bbb=2}} 这
2016-04-28 21:55:38 1929
原创 mnesia的锁机制
一、基本概念1、mnesia的锁不是操作系统级别的锁;2、一个mnesia结点中,所有的锁由单独的mnesia_locker进程进行管理;3、其它进程对锁的申请和释放通过发送消息到mnesia_locker进程实现;4、A进程请求锁时,发送的同步消息如果当时获取到了锁,则返回获取到的锁消息;如果没有,则将锁请求加入等待队列,A进程阻塞等待返回;5、B进程进行释放锁时,发送同步消
2016-04-06 00:49:08 861
转载 ejabberd源码分析《三》客户端数据处理
参考 http://www.cnblogs.com/yjl49/archive/2011/09/02/2371964.html1.客户端连接服务器后,发送消息给服务器的xml数据处理在ejabberd_c2s中。 ejabberd_c2s 是一个gen_fsm 状态机,在socket连接建立之后创建。 初始状态为 wait_for_stream,接受形为 {xm
2016-04-05 19:32:09 1340
原创 ejabberd源码分析《二》客户端网络监听
在配置文件ejabberd.cfg的listen配置项里,可以配置监听模块由ejabberd_listener.erl负责启动监听1、客户端的连接生成一个套接字以后,由ejabberd_c2s.erl调用ejabberd_frontend_socket:startejabberd_receiver:start 生成一个gen_server处理套接字数据在ejab
2016-04-05 17:30:12 1102
原创 ejabberd源码分析《一》application启动
什么都别说,直接看启动函数start(normal, _Args) %% ejabberd_logger主要是读取application的配置文件,然后启动lager,设置lager参数。 ejabberd_logger:start(), %% 将本进程的pid写入配置文件指定的文件名中 write_pid_file(), %% 新建jid ets jid:start(), %% 启动其它app
2016-04-03 01:42:04 1530
原创 OpenGL的矩阵
OpenGL在进行坐标变换时有三个矩阵在变换开始时,观察者坐标为世界坐标的原点(0,0,0),他看向 -z 方向模型矩阵 描述模型在世界坐标系下的变换,矩阵为A视图矩阵 描述观察者在世界坐标系下的变换,矩阵为B投影矩阵 将模型相对于观察者的坐标变换成一个视口的坐标(-1,-1)到(1,1),矩阵为C整个过程就是C * B * A * Posi
2016-04-01 02:09:02 587
GNU的自平衡二叉查找树(AVL tree、redblack tree等)源代码
2012-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人