[ccan] CCAN Update for 2014-11
rusty at rustcorp.com.au
Fri Dec 12 15:21:49 AEDT 2014
A quiet month as I wrap up my sabbatical, but there have been
three new modules:
Module of the Month: ccan/timer
This module optimizes the common case where timers are deleted before
expiry (so we don't have to sort them until they're nearly due to
expire). It uses an exponential series of buckets, similar to that
described for the Linux kernel (see http://lwn.net/Articles/152436/ ).
It's a simple API to which you feed 'struct timer's and the time values
explicitly. You use timer_add() and timer_del() on a "timers"
structure. timer_earliest() tells you when the first timer expires, or
you pass timers_expire() the current time, and it will return an expired
timer (or NULL), forwarding to the current time.
cdump - trivial hacky C header parser for eg. to autogen enum strings
iblt - an invertible bloom lookup table implementation
pushpull - simple (little-endian) data marshalling
Minor updates & bugfixes:
timer - timer_del() is idempotent (no harm if it gets called twice), and
timers_expire() returns a single timer not a linked list.
ccanlint - offer to insert license lines if not there already.
ccanlint - look in all headers (not just main) for examples to test.
More information about the ccan