Guest User

Untitled

a guest
Mar 7th, 2022
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Nim 0.55 KB | None | 0 0
  1. import nesper, nesper/tasks
  2.  
  3. type
  4.   Task* = object
  5.     name*: string
  6.     handle: TaskHandle_t
  7.     ret*: BaseType_t
  8.     cb: proc(): void {.thread.}
  9.  
  10. proc wrapper (a1: pointer) {.cdecl.} =
  11.   cast[ptr Task](a1).cb()
  12.  
  13. proc newTask*(cb: proc() {.thread.} , name: string, stackSize: SzBytes): Task =
  14.   result.name = name
  15.   result.cb = cb
  16.  
  17.   var ret = xTaskCreate(wrapper, cstring(result.name), stackSize.uint32, addr result, 10, addr result.handle)
  18.   result.ret = ret
  19.  
  20. proc `=destroy`*(t: var Task) =
  21.   echo "Destroying!"
  22.   vTaskDelete(t.handle)
  23.  
Advertisement
Add Comment
Please, Sign In to add comment