Single C header file event loop.
Doops is an event loop designed to provide basic message dispatch and async I/O. For now it includes a timer and socket/file descriptor polling via select/poll/epoll/kqueue.
gcc:
gcc example.c
gcc(windows):
gcc example.c -lws2_32
clang:
clang -fblocks example.c -lBlocksRuntime
clang(windows):
clang -fblocks example.c -lBlocksRuntime -lws2_32
clang(OS X):
clang -fblocks example.c
Important note: for any other compiler than gcc and clang, blocks will not be available. Function pointers should be used instead.
Minimal code:
#include "doops.h"
int main() {
// create loop
struct doops_loop *loop = loop_new();
int times = 0;
// schedule event every second (1000ms)
loop_schedule(loop, {
times ++;
printf("Hello world! (%i)\n", times);
// remove event
if (times == 10)
return 1;
}, 1000);
// run the loop
loop_run(loop);
loop_free(loop);
return 0;
}