Guest User

Untitled

a guest
Mar 2nd, 2022
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Nim 0.53 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
  9.  
  10. proc newTask*(cb: proc(), name: string, stackSize: SzBytes): Task =
  11.   result.name = name
  12.   result.cb = cb
  13.   proc wrapper (a1: pointer) {.cdecl.} =
  14.     cast[ptr Task](a1).cb()
  15.  
  16.   var ret = xTaskCreate(wrapper, cstring(result.name), stackSize.uint32, addr result, 10, addr result.handle)
  17.   result.ret = ret
  18.  
  19. proc `=destroy`*(t: var Task) =
  20.   echo "Destroying!"
  21.   vTaskDelete(t.handle)
  22.  
Advertisement
Add Comment
Please, Sign In to add comment