lupus / libevfibers Goto Github PK
View Code? Open in Web Editor NEWSmall C fiber library that uses libev based event loop and libcoro based coroutine context switching.
License: Apache License 2.0
Small C fiber library that uses libev based event loop and libcoro based coroutine context switching.
License: Apache License 2.0
If you compile libevfibers without first installing the "check" unit testing framework, then the build will fail as shown below. The package is easy to install to resolve the problem, but maybe cmake needs to look for that package up front?
libevfibers/test/init.c:20:19: fatal error: check.h: No such file or directory
#include <check.h>
^
compilation terminated.
test/CMakeFiles/evfibers_test.dir/build.make:54: recipe for target 'test/CMakeFiles/evfibers_test.dir/init.c.o' failed
It would be helpful if libevfibers provided an evfibers.pc file for pkg-config at make install time, particularly since there are possibly a collection of indirect library dependencies needed to use libevfibers.
A test application that creates a fbr_buffer and destroys it in a loop is leaking virtual memory.
Probably that's a bug in libvrb, which is used a provider of virtual ring buffer.
Currently there is fbr_buffer, which is a heavy-weight byte oriented virtual ring buffer with fiber synchronization.
Since fibers are very similar to goroutines, it makes sense to leverage an existing and well designed concept, which would result in more clean and lightweight replacement for fbr_buffer.
If you elect to use the "embedded" eio option, then when you run make install you get an include/evfibers/eio.h that contains the fbr_* wrappers for each eio function. However, this header includes , which is the native interface to libeio, and this header is not installed.
The workaround is simple: use a standalone build of libeio rather than the embedded one.
When compiling on Ubuntu 15.04, the make (and make install) fails to link evfibers_test due to some unresolved symbols. The solution is to add -lm and -lrt to the libraries for this target. I'm not exactly sure how to do this the proper way in cmake, though :)
Currently valgrind is required to build.
It should be made optional.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.