mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-08 16:43:10 +00:00
trying out manual futures
This commit is contained in:
parent
8c5eea3ee1
commit
7974dea0aa
@ -174,14 +174,19 @@ proc put*(
|
|||||||
echoed "spawn put request: ", $getThreadId()
|
echoed "spawn put request: ", $getThreadId()
|
||||||
# this spawns the taskpool Task
|
# this spawns the taskpool Task
|
||||||
# but we can't wait on it directly - we use wait(ret[].sig)
|
# but we can't wait on it directly - we use wait(ret[].sig)
|
||||||
|
echo "\n"
|
||||||
tds[].tp.spawn putTask(sig, ret, tds, bkey, bval)
|
tds[].tp.spawn putTask(sig, ret, tds, bkey, bval)
|
||||||
|
|
||||||
wait(sig).
|
wait(sig).
|
||||||
then(proc () =
|
then(proc () =
|
||||||
|
echo "\n"
|
||||||
|
os.sleep(400)
|
||||||
|
echoed "put request done "
|
||||||
var ret = ret
|
var ret = ret
|
||||||
let val = ret.convert(void)
|
let val = ret.convert(void)
|
||||||
putRes.complete(val)
|
putRes.complete(val)
|
||||||
).cancelled(proc() =
|
).cancelled(proc() =
|
||||||
|
echoed "put request cancelled "
|
||||||
discard
|
discard
|
||||||
).catch(proc(e: ref CatchableError) =
|
).catch(proc(e: ref CatchableError) =
|
||||||
doAssert false, "will not be triggered"
|
doAssert false, "will not be triggered"
|
||||||
@ -193,6 +198,8 @@ proc put*(
|
|||||||
putRes.complete(res)
|
putRes.complete(res)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
return putRes
|
||||||
|
|
||||||
|
|
||||||
proc deleteTask*(
|
proc deleteTask*(
|
||||||
ret: TResult[void],
|
ret: TResult[void],
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user