add util_event_loop.{c,h}