zx_timer_set

摘要

啟動計時器。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_timer_set(zx_handle_t handle,
                         zx_time_t deadline,
                         zx_duration_t slack);

說明

zx_timer_set() 會啟動單次計時器,在 deadline 經過時觸發。如果先前對 zx_timer_set() 的呼叫處於待處理狀態,系統會取消先前的計時器,並視需要取消 ZX_TIMER_SIGNALED 的聲明。

deadline 參數會指定與 ZX_CLOCK_MONOTONICZX_CLOCK_BOOT 相關的期限,具體取決於如何使用 zx_timer_create() 建立控制代碼。如要等待相對間隔,請在 deadline 中使用 zx_deadline_after() 傳回的值。

如要立即觸發計時器,請傳遞小於或等於 0deadline

計時器觸發時,會判斷 ZX_TIMER_SIGNALED。如要取消聲明,請再次呼叫 zx_timer_cancel()zx_timer_set()

slack 參數會指定一個範圍,從 deadline - slackdeadline + slack,計時器可以在這個範圍內觸發。系統會使用這個參數做為提示,合併附近的計時器。

確切的合併行為是由建立計時器時指定的 options 參數控制。ZX_TIMER_SLACK_EARLY 只允許在「截止時間」-「寬限時間」間隔內觸發,ZX_TIMER_SLACK_LATE 則只允許在「截止時間」+「寬限時間」間隔內觸發。預設選項值為 0,即 ZX_TIMER_SLACK_CENTER,允許提早和延遲觸發,有效間隔為 deadline - slackdeadline + slack

權限

handle 必須是 ZX_OBJ_TYPE_TIMER 類型,且具有 ZX_RIGHT_WRITE

傳回值

成功時,zx_timer_set() 會傳回 ZX_OK。 如果失敗,系統會傳回負數錯誤值。

錯誤

ZX_ERR_BAD_HANDLE handle 不是有效的控制代碼。

ZX_ERR_ACCESS_DENIED 控點缺少正確的 ZX_RIGHT_WRITE

ZX_ERR_OUT_OF_RANGE slack 為負值。

另請參閱