2014年7月14日 星期一

libubox uloop

uloop 是 libubox 的一部份,其功能包括
  • timeout:再多久執行指定函數
  • 執行 child process,結束時執行指定的函數
  • fd 事件發生時執行指定函數。(使用 kqueue 或 epoll)
uloop 使用
  1. 呼叫 uloop_init() 初始化
  2. 註冊 timeout、process、或 fd
    • timeout 透過 uloop_timeout_add() 或 uloop_timeout_set() 註冊,uloop_timeout_cancel() 取消 timeout,uloop_timeout_remaining() 查詢多久 timeout
    • uloop_process_add() 註冊 child process
    • uloop_fd_add() 註冊 fd,uloop_fd_delete() 移除
  3. 呼叫 uloop_run() 執行 uloop 工作迴圈,直到取消。可透過 uloop_end() 取消或用 SIGINT 或 SIGTERM kill
  4. 取消執行後可呼叫 uloop_done() 清掉所有註冊的 timeout 及 child process
應用參考:

沒有留言:

張貼留言

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...