nlib
nlib_timerspec 構造体

タイマーの初回起動までの時間と以降の起動間隔を指定します。両方0を指定した場合タイマーは停止します。 [詳解]

#include <manual_ja_platform.h>

公開変数類

タイマー

定期的にタスクを実行します。

説明
以下のコードは、タイマーを作成し200ミリ秒後から100ミリ秒毎にコールバック関数を5回読んで最後のコールバック関数呼び出しでタイマーを削除するサンプルです。
nlib_timer timer;
int counter = 0;
e = nlib_timer_create(&timer, [](nlib_timer t, void* p) {
// NOTE:
// callback function can be called in parallel
int32_t* pcounter = reinterpret_cast<int*>(p);
int32_t cnt = nlib_atomic_add_fetch32(pcounter, 1, NLIB_ATOMIC_SEQ_CST);
nlib_printf("counter = %d\n", cnt);
if (cnt == 5) {
nlib_timer_delete(t, 1, NULL);
}
}, &counter, 0);
SUCCEED_IF(e == 0);
nlib_timerspec spec = {
_100msec * 2, // due_time
_100msec // interval
};
e = nlib_timer_settime(timer, &spec, NULL);
if (e != 0) {
nlib_timer_delete(timer, 1, NULL);
SUCCEED_IF(0);
}
while (counter < 5) {
nlib_sleep(_100msec);
}
/*
Output:
counter = 1
counter = 2
counter = 3
counter = 4
counter = 5
*/
nlib_duration due_time
 タイマーが最初に起動するまでの時間を指定します。
 
nlib_duration interval
 タイマーの初回起動以降の起動間隔を指定します。0を指定した場合ワンショットタイマーになります。
 

詳解

タイマーの初回起動までの時間と以降の起動間隔を指定します。両方0を指定した場合タイマーは停止します。

Platform.h515 行目に定義があります。


この構造体詳解は次のファイルから抽出されました: