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() 會啟動一次性計時器,並在期限通過時觸發。如果之前對 zx_timer_set() 的呼叫正在等待,先前的計時器會取消,並視需要取消 ZX_TIMER_SIGNALED

「deadline」參數會指定 ZX_CLOCK_MONOTONIC 的期限。如要等待相對間隔,請使用「期限」中的 zx_deadline_after() 傳回值。

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

計時器觸發時,會斷言 ZX_TIMER_SIGNALED。如要再次宣告這個訊號,請再次呼叫 zx_timer_cancel()zx_timer_set()

slack 參數指定範圍從 deadline - slackdeadline + slack,系統會使用這個參數做為抑制鄰近計時器的提示。

精確的聯合代管行為是由計時器建立時指定的 options 參數控制。ZX_TIMER_SLACK_EARLY 僅允許在「期限」-「slack」間隔「ZX_TIMER_SLACK_LATE」中觸發,而 ZX_TIMER_SLACK_LATE 僅允許在「期限」+「slack」間隔中觸發。預設選項值為 ZX_TIMER_SLACK_CENTER,允許提前和延遲觸發,有效間隔為「期限」-「slack」至「期限」+「slack」

權限

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

傳回值

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

錯誤

ZX_ERR_BAD_HANDLE 帳號代碼不是有效的帳號代碼。

ZX_ERR_ACCESS_DENIED 處理常式缺少正確的 ZX_RIGHT_WRITE

ZX_ERR_OUT_OF_RANGE slack 為負值。

另請參閱