- Notifications
You must be signed in to change notification settings - Fork0
A implement for C coroutine
License
NotificationsYou must be signed in to change notification settings
YingshuLu/libcask
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Libcask can help simplify the complex in async non-block network programs.It can easily create millions tasks concurrently, coder can simply use syncblock style to build the application, libcask will help convert this codeimplicitly into Reactor mode of network program.
For legacy 3rd-party libraries, libcask can hook them into async flows withoutchange codes or re-build libraries.
- Round robin scheduling coroutines (not support work-steal)
- Hook socket IO syscalls and related glibc APIs
- Coroutine-level sync primitives among multiple-threads: mutex, spinlock, barrier, condition variant, Semaphore
- Async task for unhookable blocked syscalls
Platform:
- Linux only (ubuntu 16.04 TLS and redhat 7.1 or above recommended)
- gcc version >= 6.2.0
Build library:
$ cd libcask $ mkdir output $ bash build.shthen libcask.so would be present in libcask/output
Build tests:
$ cd libcask/test $ bash build_test.sh server [debug]- [] co_rwlock
- [] multiple-thread scheduling with work-steal (not consider to implement)
- hook getaddrinfo
- hook __poll poll select
libco &libgo &libtask inspired this C style coroutine library.
About
A implement for C coroutine
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published