纸上得来终觉浅

38 篇文章
3.3K 次阅读
16 人订阅

Linux

wanyicheng

libuv源码阅读(23)--tcp-echo-server

listen完了之后run loop等待socket可读,新连接到来,执行指定回调

10740
wanyicheng

libuv源码阅读(22)--spawn

总结:父进程fork出子进程去执行指定的文件或者应用,双方根据参数设置的共享fd来通信,这个示例比较简单,父进程只需要等待结束捕获信号就可以了。

11540
wanyicheng

libuv源码阅读(20)--uvcat

10110
wanyicheng

libuv源码阅读(19)--vustop

5910
wanyicheng

libuv源码阅读(18)--progress

总结:用户自己初始化的async handler 也可以被插入到异步handler队列中,当管道[0]可读的时候,代表某个异步handler可以处理了,这时候遍...

4410
wanyicheng

libuv源码阅读(17)--queue-cancel

总结:cancel把会work从待处理的队列中移动到loop的wq就绪队列中,然后让loop的异步任务handler来处理它

5610
wanyicheng

libuv源码阅读(16)--signal

总结:信号处理handler是被插入到红黑树中,按照一定规则排序插入的,信号越小,不带oneshot等规则。信号处理函数统一触发信号管道可读,然后loop从信号...

6010
wanyicheng

libuv源码阅读(15)--ref-timer

主要包含 timercb 和用于最小时间堆节点字段heap_node等;它由一个基础hanlder类型和自身独有的属性构成

6010
wanyicheng

libuv源码阅读(14)--queue-work

其实就是调用 uv__work_submit 提交一个任务给任务队列,跟loop的io事件多线程异步化一样的处理逻辑,这里2个cb分别对应work和done函数...

6810
wanyicheng

libuv源码阅读(13)--plugin

功能很简单:载入启动参数中对应的插件动态库,调用它们的 initialize 方法

6610
wanyicheng

libuv源码阅读(12)--change

可以看到 fs_event_s 也是由基础的handler和一个path 以及 它独有的字段组成

5210
wanyicheng

libuv源码阅读(11)--lock

2. 创建2个读者 1个写者 根据读写锁 被系统调度分配执行时机 输出对应自己的读到或者写后的值

6510
wanyicheng

libuv源码阅读(10)-thread-create

根据参数设置新线程的堆栈大小,然后调用系统接口创建对应的线程,然后释放线程属性变量

4510
wanyicheng

libuv源码阅读(9)--interfaces

简单来说就是调用linux系统的:getifaddrs 和 freeifaddrs,读取系统的网卡接口信息,然后拷贝到用户的缓冲区中,然后再释放函数内部的内存。...

5710
wanyicheng

libuv源码阅读(7)--idle-basic

1. init初始化一个 idle handler, start目标handler ,同时绑定执行函数 wait_for_a_while;

3110
wanyicheng

libuv源码阅读(6)--helloworld

每一种都是一种hanlder类型或者request类型,代表某种资源类型或者请求操作的包装结构体,里面的属性字段是为了支持它可以正常工作的而设置的:

5310
wanyicheng

libuv源码阅读(5.2)--tree.h之红黑树

总结: 红黑树是libuv中用来管理信号handler的,实现的独立性比较高,可以用于自己以后项目参考。

9810
wanyicheng

libuv源码阅读(5.1)--tree.h之伸展树

点这里 https://juejin.cn/post/6892567524118888462

3510
wanyicheng

libuv源码阅读(2)--queue.h

这是一种双向队列的实现,假设现在有2个strcut BASE 和 A 要通过双向队列组织起来,BASE作为队列头结点的持有者,A作为队列元素插入:

5010
wanyicheng

libuv源码阅读(1)--安装与使用

安装过程中可能会提示缺少库,请对应apt-get install 对应提示(autoconf automake libtool等)缺少的库名。

7510

扫码关注云+社区

领取腾讯云代金券