This patch adds support for at/cron-like jobs that need an absolute
timer. The API supports waking up with an UEV_HUP callback event if the
wall clock changed due to NTP or user input while waiting.
- uev_cron_init()
- uev_cron_set()
- uev_cron_start()
- uev_cron_stop()
A very simple cronrun example/test program is also included.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
Split libuev.c into one file per watcher type, mostly to give a better
overview and ease of maintenance, but also to help the linker.
Unfortunately this steals a few bytes when linking a full blown app, but
for apps that, e.g., only need I/O watchers and no timers the resulting
binary will be smaller. This applies to static binaries that are more
common in embedded systems.
$ size libuev.a libuev.so.1
text data bss dec hex filename
999 0 0 999 3e7 main.o (ex libuev.a)
90 0 0 90 5a io.o (ex libuev.a)
490 0 0 490 1ea timer.o (ex libuev.a)
4380 696 8 5084 13dc libuev.so.1
Also, move uev.h back to top from include/libuev/uev.h since a separate
namespace is not needed after the removal of the OpenBSD queue.h copy.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This fork is called libuev and will focus solely on embedded Linux
systems using C. Patches for other UNIX-like operating systems are
welcome.
- Remove Lua support, will not be used.
- Rename from LibUEvent to libuev where applicable
- Add project's MIT license to top of all files, as is customary
- Add a LICENSE file, as is customary
This MIT licensed code was cloned from the Mercurial repository at
Google http://code.google.com/p/libuevent/ which had mislabled the
license as "New BSD License", which is wrong. The actual license
of the project is https://en.wikipedia.org/wiki/MIT_License
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>