In (very) modern versions of binutils, for instance v2.25.1 in Ubuntu
15.10, complain about VERY common `crus` argument. This patch attempts
to silence this noise:
$ make -j5
CC uev.o
CC io.o
CC timer.o
CC signal.o
ARCHIVE libuev.a
LINK libuev.so.1
ar: `u' modifier ignored since `D' is the default (see `U')
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
It is non-trivial to set a separate environment variable (STATIC=1) when
descending into the libuEv subdirectory from an autoconf/automake based
project.
It is better to instead simplify the build process and always build both
.a and .so files.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
While comparing the library layout with libite, I noticed how the
formatting of the license paragraphs in all source files had been
garbled. This patch restores the orginal line breaks.
Note: Only whitespace changes, no change in licensing terms!
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
Update copyright years of all sources.
Reflow/reformat paragraphs in MIT license to match Finit,
i.e., no content changes only whitespace/linebreak changes.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
- Rename all _create() functions --> _init()
- Rename all _delete() functions --> _stop()
- Watchers are automatically started, except
- Timer watchers are automatically started by uev_run()
- Allow I/O watchers to watch either EV_READ/EV_WRITE or both events
- Extend callbacks with a received events field
- Remove calloc()/free(), let user handle this
- Make event has-a context when initializing it => simplifies API
- Internal uev_watcher_*() API mostly handles epoll stop/start
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 is a major refactor of the original design by Flemming Madsen. It
converts the library timers from poll() to timerfd, which at the same
time also unifies the file and timer watchers into one design. The idea
is to also add signalfd to the mix later on.
Also a couple of hundred kilobytes smaller, although size a secondary
goal. The primary goal is to further simplify the internal design and
to continuously strive to employ modern APIs.
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>