当前位置: 首页 > news >正文

lib-zo,C语言另一个协程库,整理

lib-zo

一个 C 协程库, 项目地址 https://github.com/mailhonor/lib-zo

API文档 https://github.com/mailhonor/lib-zc/blob/master/doc/coroutine.md

感谢

本协程库的实现参考了 libco, libgo, nodejs 的实现

介绍

  • 支持文件IO操作协程化(如 mkdir, getdents 等)
  • 支持协程条件, 协程锁
  • 慢操作协程化
  • 支持 sleep
  • 可以禁用/启用给定的 fd 协程化
  • 可以禁用 UDP 协程切换
  • 部分支持 dns 协议
  • 支持静态编译

睡眠

  • 支持 sleep
  • 不支持 usleep 和 nanosleep
  • 毫秒睡眠请用 void zcoroutine_sleep_millisecond(int milliseconds);

支持的文件io

可开启支持文件 IO 在其他线程池工作, 这些IO函数包括:

  • open, openat, close, read, readv, write, writev, lseek,
  • fdatasync, fsync, rename, truncate, ftruncate,
  • rmdir, mkdir, getdents,
  • stat, fstat, lstat, link, symlink, readlink, unlink,
  • chmod, fchmod, chown, fchown, lchown, utime, utimes,

支持慢(阻塞式)操作

  • 操作可以在其他线程池工作

dns协议

本框架下, 大部分 glibc 版本的 DNS 解析会有 BUG, 但至少版本 2.12 没问题.

如果有问题, 建议:

  • 如果需要查询常用域名的 IP 地址, 可以写到 hosts 文件
  • 可以考虑 “慢操作协程化”
  • 可以禁用 53 端口(既 DNS)的 UDP 协程切换

可以禁用 UDP 协程切换

  • 可以禁用 UDP 协程切换,
  • 可以禁用 53 端口(既 DNS)的 UDP 协程切换

源码目录

coroutine.c coroutine.h 是源码

*_test.c 是例子

编译

make

得到

libzc_coroutine.a

使用

gcc your_code.c ./libzc_coroutine.a

其他

lib-zo,C语言另一个协程库,激活文件IO操作协程化

http://www.dtcms.com/a/104068.html

相关文章:

  • leetcode0704. 二分查找-easy
  • 关于labview中路径的问题
  • 一款功能强大的手机使用情况监控工具
  • 探访 DINO 家族 Part 4:融合多模态大语言模型的视觉模型基础 RexSeek
  • 【计算机网络】记录一次校园网无法上网的解决方法
  • Android 地区选择器或者其他选择器
  • 【蓝桥杯14天冲刺课题单】Day 1
  • 指针函数、函数指针和指针函数指针的全面总结
  • MySQL表缺乏主键或唯一索引对主从复制的深度影响及解决方案
  • linux课程学习三——静态/动态库的创建
  • 使用无人机进行露天矿运输道路分析
  • js中三元表达式(条件运算符)的用法总结
  • VCP考试通过率低?
  • vs2022中使用spdlog、C++日志
  • 时序数据库 InfluxDB(五)
  • 文件分享系统--开源的可视化文件共享管理工具
  • LeetCode 438. 找到字符串中所有字母的异位词
  • 9、tlm 事务交互通信
  • 【11408学习记录】破译语言密码·征服数学迷宫——长难句拆解与方程不等式全析
  • RK3588使用笔记:系统算法依赖库安装
  • Linux信号——信号的产生(1)
  • 自然语言处理(18:(第五章3.)LSTM的实现)
  • 【算法1-5】贪心
  • 一文详解VS2022配置LibTorch环境:Windows平台LibTorch CUDA与cuDNN开发环境配置
  • marked库(高效将 Markdown 转换为 HTML 的利器)
  • 算法训练营第二十九天 | 动态规划(二)
  • TS 中 keyof 和 in 关键字详解
  • 使用Vscode的Remote-SSH通过ssh密钥免输入密码连接远程服务器
  • Java NIO之FileChannel 详解
  • unity客户端面试高频2(自用未完持续更新)