Score
0
Watch 5 Star 17 Fork 6

linuxmail / lib-zoCGPL-3.0

Join us
Explore and code with more than 2 million developers,Free private repositories !:)
Sign up
C协程库, 单文件易于迁移. 只支持X64. 支持文件IO类协程化(如mkdir, getdents等) 支持协程条件, 协程锁 慢操作协程支持 spread retract

Clone or download
linuxmail authored readme
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

lib-zo

一个 C 协程库

本协程库是从 https://gitee.com/linuxmail/lib-zc抽出来的. 可单独使用

感谢

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

介绍

只支持X64

支持文件IO类协程化(如mkdir, getdents等)

支持协程条件, 协程锁

慢操作协程化

支持sleep

部分支持dns协议

支持静态编译

睡眠

支持sleep

不支持usleep和nanosleep

毫秒睡眠请用 void zcoroutine_sleep_millisecond(int milliseconds);

支持的文件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解析. 简单的说

如果 resolv 库支持 res_ninit, 就会出现bug, 其他 版本没问题

源码目录

coroutine.c coroutine.h 是源码

*_test.c 是例子

编译

make

得到

libzc_coroutine.a

使用

gcc your_code.c ./libzc_coroutine.a

Comments ( 0 )

Sign in for post a comment

C
1
https://gitee.com/linuxmail/lib-zo.git
git@gitee.com:linuxmail/lib-zo.git
linuxmail
lib-zo
lib-zo
master

Help Search