samples: modules: lvgl: fix integer overflow
`lv_task_handler()` returns a `uint32_t`, but `k_msleep` takes a `int32_t`. If no timer exists, `lv_task_handler()` returns `UINT32_MAX` to indicate that we should wait forever. However, this gets auto-cast to `-1`, indicating to `k_msleep` to not wait at all, creating a busy loop. Hence, a clamping to `[0, INT32_MAX]` is required. Signed-off-by: Martin Stumpf <finomnis@gmail.com>
This commit is contained in:
parent
3eae0201c8
commit
86a126dba4
2 changed files with 6 additions and 2 deletions
|
@ -89,7 +89,9 @@ int main(void)
|
|||
display_blanking_off(display_dev);
|
||||
|
||||
while (1) {
|
||||
k_msleep(lv_task_handler());
|
||||
uint32_t sleep_ms = lv_task_handler();
|
||||
|
||||
k_msleep(MIN(sleep_ms, INT32_MAX));
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -40,7 +40,9 @@ int main(void)
|
|||
display_blanking_off(display_dev);
|
||||
|
||||
while (1) {
|
||||
k_msleep(lv_task_handler());
|
||||
uint32_t sleep_ms = lv_task_handler();
|
||||
|
||||
k_msleep(MIN(sleep_ms, INT32_MAX));
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue