> Just one nit - why struct and not va_list (or just pass all four arguments) for the callback? The callback_data makes sense when you need to store the callback_data in an async structure. Neat idea, thanks, I have not thought about that. Just pushed a commit which uses a va_list in the callback prototype instead of a pointer to a structure. I chose this way because I really do not like passing a lot of arguments around. I think this solution also better conveys the intent. Could you please take a look? > (Actually it's not a 'callback' but a function that does things directly, right?) Correct, but I failed to find a better term and "callback" should give the reader the right idea. Plain "function" sounds too generic to me. If you have any suggestions, I am all ears (or you can even push a relevant tweak to the branch if you feel like it, as far as I am concerned).