examples
evpp
如果作为服务器开发,不建议使用hv的log作为日志工具记录日志,因为该日志是同步写文件的,可能严重影响服务器效率,可以使用log4cplus或者其他。对于性能没有太高要求的程序,hvlog是一个便捷的开发工具。
libhv的基础代码封装:base目录
,cpputil
这部分目录可以作为通用移植代码,非常值得借鉴和学习。
里面对不同平台函数进行封装,例如:
hmutex.h
对不同平台下的mutex进行封装。
list.h
双向链表的通用版的封装,具体使用可参考:二叉堆算法实现
heap.h
基于树的二叉堆封装,具体使用可参考:二叉堆算法实现
herr.h
错误码的封装,直接借鉴学习。参考:如何优雅的定义错误码
hsocket.h
对不同平台下常用socket的操作封装,例如windows下版本的socketpair
custom evetn
不通过EVENT_PENDING
,而是基于进程间通信socketpair
实现的,即eventfd_read_cb
。hloop_run
的部分细节分析可以参考:创建一个简单的TCP服务器,libhv学习笔记7:IO事件之write事件更多源码分析参考:libhv
libhv教程,个人感觉git 源码demo更合适