1e66f31c5Sopenharmony_ci#include <stdio.h>
2e66f31c5Sopenharmony_ci#include <uv.h>
3e66f31c5Sopenharmony_ci
4e66f31c5Sopenharmony_ciint64_t counter = 0;
5e66f31c5Sopenharmony_ci
6e66f31c5Sopenharmony_civoid idle_cb(uv_idle_t *handle) {
7e66f31c5Sopenharmony_ci    printf("Idle callback\n");
8e66f31c5Sopenharmony_ci    counter++;
9e66f31c5Sopenharmony_ci
10e66f31c5Sopenharmony_ci    if (counter >= 5) {
11e66f31c5Sopenharmony_ci        uv_stop(uv_default_loop());
12e66f31c5Sopenharmony_ci        printf("uv_stop() called\n");
13e66f31c5Sopenharmony_ci    }
14e66f31c5Sopenharmony_ci}
15e66f31c5Sopenharmony_ci
16e66f31c5Sopenharmony_civoid prep_cb(uv_prepare_t *handle) {
17e66f31c5Sopenharmony_ci    printf("Prep callback\n");
18e66f31c5Sopenharmony_ci}
19e66f31c5Sopenharmony_ci
20e66f31c5Sopenharmony_ciint main() {
21e66f31c5Sopenharmony_ci    uv_idle_t idler;
22e66f31c5Sopenharmony_ci    uv_prepare_t prep;
23e66f31c5Sopenharmony_ci
24e66f31c5Sopenharmony_ci    uv_idle_init(uv_default_loop(), &idler);
25e66f31c5Sopenharmony_ci    uv_idle_start(&idler, idle_cb);
26e66f31c5Sopenharmony_ci
27e66f31c5Sopenharmony_ci    uv_prepare_init(uv_default_loop(), &prep);
28e66f31c5Sopenharmony_ci    uv_prepare_start(&prep, prep_cb);
29e66f31c5Sopenharmony_ci
30e66f31c5Sopenharmony_ci    uv_run(uv_default_loop(), UV_RUN_DEFAULT);
31e66f31c5Sopenharmony_ci
32e66f31c5Sopenharmony_ci    return 0;
33e66f31c5Sopenharmony_ci}
34