From 84f3f8638b82f420717e3cfdbb2af68821828fbc Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Thu, 14 Sep 2023 15:43:55 -0700 Subject: [PATCH] aww, that fixes the sig issue --- datastore/threadproxyds.nim | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/datastore/threadproxyds.nim b/datastore/threadproxyds.nim index 6b0e352..537c59a 100644 --- a/datastore/threadproxyds.nim +++ b/datastore/threadproxyds.nim @@ -91,31 +91,33 @@ method put*( ): Future[?!void] = echoed "put request args: ", $getThreadId() - let tds = self.tds var putRes = newFuture[?!void]("threadbackend.put(tds, key, data)") - let sig = SharedSignal.new(2) + let sig = SharedSignal.new(0) + echoed "put:sig: ", sig.repr acquireSig(sig). then(proc () = - echoed "got tresFut" let ret = newSharedPtr(ThreadResult[void]) bkey = KeyBuffer.new(key) bval = DataBuffer.new(data) + # queue taskpool work tds[].tp.spawn putTask(sig, ret, tds, bkey, bval) - + # wait for taskpool work to finish wait(sig). then(proc () = - sig.decr() + # sig.decr() os.sleep(400) let val = ret.convert(void) putRes.complete(val) ).cancelled(proc() = - sig.decr() + # sig.decr() + discard ).catch(proc(e: ref CatchableError) = - sig.decr() + # sig.decr() + discard doAssert false, "will not be triggered" ) ).catch(proc(e: ref CatchableError) =