Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const
- uvheader = "uv.h"
- type
- uv_run_mode* {. size: sizeof(cint) .} = enum
- UV_RUN_DEFAULT = 0, UV_RUN_ONCE, UV_RUN_NOWAIT
- uv_loop_t* {.pure, final, importc: "uv_loop_t", header: uvheader.} = object
- uv_idle_t* {.pure, final, importc: "uv_idle_t", header: uvheader.} = object
- p_uv_loop_t* = ptr uv_loop_t
- p_uv_idle_t* = ptr uv_idle_t
- uv_idle_cb* {.importc: "uv_idle_cb", header: uvheader.} = (proc(idler: p_uv_idle_t) : void)
- proc uv_idle_init*(h: p_uv_loop_t, i: p_uv_idle_t): int {.importc: "uv_idle_init", header: uvheader, discardable.}
- proc uv_idle_start*(i: p_uv_idle_t, cb: uv_idle_cb): int {.importc: "uv_idle_start", header: uvheader, discardable.}
- proc uv_idle_stop*(i: p_uv_idle_t) : int {.importc: "uv_idle_stop", header: uvheader, discardable.}
- proc uv_default_loop*() : p_uv_loop_t {.importc: "uv_default_loop", header: uvheader.}
- proc uv_loop_init*(loop: p_uv_loop_t) {.importc: "uv_loop_init", header: uvheader.}
- proc uv_loop_close*(loop: p_uv_loop_t) {.importc: "uv_loop_close", header: uvheader.}
- proc uv_run*(loop: p_uv_loop_t, mode: uv_run_mode = UV_RUN_DEFAULT): int {.importc: "uv_run", header: uvheader, discardable.}
- proc wait_for_a_while(h: p_uv_idle_t): void =
- var counter {.global.} : int = 0
- counter = counter + 1
- if counter >= 10000:
- echo "done!"
- uv_idle_stop(h)
- var idle: uv_idle_t
- var p_loop = uv_default_loop()
- var p_idle = addr idle
- uv_idle_init(p_loop, p_idle)
- uv_idle_start(p_idle, wait_for_a_while)
- uv_run(p_loop)
- uv_loop_close(p_loop)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement