trying out manual futures

This commit is contained in:
Jaremy Creechley 2023-09-14 14:23:16 -07:00
parent 8c5eea3ee1
commit 7974dea0aa
No known key found for this signature in database
GPG Key ID: 4E66FB67B21D3300

View File

@ -174,14 +174,19 @@ proc put*(
echoed "spawn put request: ", $getThreadId()
# this spawns the taskpool Task
# but we can't wait on it directly - we use wait(ret[].sig)
echo "\n"
tds[].tp.spawn putTask(sig, ret, tds, bkey, bval)
wait(sig).
then(proc () =
echo "\n"
os.sleep(400)
echoed "put request done "
var ret = ret
let val = ret.convert(void)
putRes.complete(val)
).cancelled(proc() =
echoed "put request cancelled "
discard
).catch(proc(e: ref CatchableError) =
doAssert false, "will not be triggered"
@ -193,6 +198,8 @@ proc put*(
putRes.complete(res)
)
return putRes
proc deleteTask*(
ret: TResult[void],