near-san a8d19935fa Remove the "byuu" user-interface. 3 tahun lalu
..
doc 1aca44e383 Merge upstream libco changes again. 4 tahun lalu
GNUmakefile ea6c7e4118 Update to ares v111r01 release. 4 tahun lalu
LICENSE a8d19935fa Remove the "byuu" user-interface. 3 tahun lalu
README.md 1aca44e383 Merge upstream libco changes again. 4 tahun lalu
aarch64.c 1aca44e383 Merge upstream libco changes again. 4 tahun lalu
amd64.c 1aca44e383 Merge upstream libco changes again. 4 tahun lalu
arm.c 1aca44e383 Merge upstream libco changes again. 4 tahun lalu
fiber.c f428d2ea78 Merge commit '5e109224fb3480d806e44d74587d052c7f88bf83' into master 4 tahun lalu
libco.c a49f992f7a Update to ares v111 release. 4 tahun lalu
libco.h a8d19935fa Remove the "byuu" user-interface. 3 tahun lalu
ppc.c 1aca44e383 Merge upstream libco changes again. 4 tahun lalu
ppc64v2.c f428d2ea78 Merge commit '5e109224fb3480d806e44d74587d052c7f88bf83' into master 4 tahun lalu
settings.h f428d2ea78 Merge commit '5e109224fb3480d806e44d74587d052c7f88bf83' into master 4 tahun lalu
sjlj.c a49f992f7a Update to ares v111 release. 4 tahun lalu
ucontext.c a49f992f7a Update to ares v111 release. 4 tahun lalu
x86.c 1aca44e383 Merge upstream libco changes again. 4 tahun lalu

README.md

libco

libco is a cooperative multithreading library written in C89.

Although cooperative multithreading is limited to a single CPU core, it scales substantially better than preemptive multithreading.

For applications that need 100,000 or more context switches per second, the kernel overhead involved in preemptive multithreading can end up becoming the bottleneck in the application. libco can easily scale to 10,000,000 or more context switches per second.

Ideal use cases include servers (HTTP, RDBMS) and emulators (CPU cores, etc.)

It currently includes backends for:

  • x86 CPUs
  • amd64 CPUs
  • PowerPC CPUs
  • PowerPC64 ELFv1 CPUs
  • PowerPC64 ELFv2 CPUs
  • ARM 32-bit CPUs
  • ARM 64-bit (AArch64) CPUs
  • POSIX platforms (setjmp)
  • Windows platforms (fibers)

See [doc/targets.md] for details.

See [doc/usage.md] for documentation.

License

libco is released under the ISC license.