uloop是OpenWrt基础库libubox的核心模块,提供事件驱动功能。

其主体框架由uloop_init、uloop_run_timeout和uloop_done三个函数构成,分别完成初始化、事件处理循环和清理工作。

uloop支持五大核心功能:

  1. 文件描述符监控基于epoll实现,通过epoll_wait处理就绪事件;
  2. 定时器事件在循环中检测超时;
  3. 子进程管理响应SIGCHLD信号;
  4. 信号处理通过管道实现;
  5. 间隔定时器依赖文件描述符机制。