摘要: 项目中的计时器模块是用libuv做的,今天发现了点问题,是释放uv_timer_t引起了,我是在uv_timer_start的回调里释放该结构的,这里是不能释放了,因为回调完后,库还会使用uv_timer_t里的数据,之前没出问题,是恰好这个内存还没有被使用,其数据还没被破坏。正确的释放时机,是再调 阅读全文
posted @ 2016-08-04 23:44 watercold 阅读(1608) 评论(0) 推荐(0) 编辑
摘要: ubuntu 14.04对很多分辨率不支持,如1920x1080。一百度,都是用xrandr来添加切换分辨率,但是这些更改都是临时的,一重新登录就都失效了,如何让其永久存在了,我们只需让用户一登陆就设置一遍就好了。只需在~/.profile的末尾加上: xrandr --newmode [cvt的输 阅读全文
posted @ 2016-08-02 21:51 watercold 阅读(492) 评论(0) 推荐(0) 编辑
摘要: linux下使用lua一般用静态库,它依赖了两个库:-lm -ldl,必须记得链上,否则编译不过 阅读全文
posted @ 2016-08-02 21:26 watercold 阅读(469) 评论(0) 推荐(0) 编辑
摘要: 使用c99链接libuv时会遇到如下编译错误: 1、UV_BARRIER_STRUCT_PADDING undeclared here(not in function). 2、unknown type name 'pthread_rwlock_t' 只需在编译指令加上-D_XOPEN_SOURCE= 阅读全文
posted @ 2016-08-02 21:22 watercold 阅读(1082) 评论(0) 推荐(0) 编辑
摘要: 这一篇来分析libuv的四个特殊的持续请求(uv_handle_t族),uv_idle_t,uv_check_t,uv_prepare_t,uv_async_t。它们直接以强类型保存在uv_loop_t中,而不像其它的持续请求保存在handle_queue中,也是最简单的持续请求。 在实现中,lib 阅读全文
posted @ 2016-07-19 15:56 watercold 阅读(4836) 评论(0) 推荐(3) 编辑
摘要: libuv我在今年四月份的时候开始接触,一开始也遇到了很多坑,但后来理解并遵守了它的设计思想,一切就变得很方便。这几天开始着手精读它的源码,本着记录自己的学习痕迹,也希望能增加别人搜索相关问题结果数的目的,因此就有了这些东西,这个系列至少会有四篇,后续再说吧。 那么它是什么,一个高效轻量的跨平台异步 阅读全文
posted @ 2016-07-16 02:47 watercold 阅读(10684) 评论(2) 推荐(4) 编辑