From d70e0df285187f4f9a151c43acef209f14b38164 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Mon, 28 Aug 2023 18:04:59 -0700 Subject: [PATCH] rework ds --- datastore/sharedds.nim | 1 + datastore/threadbackend.nim | 14 +++----------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/datastore/sharedds.nim b/datastore/sharedds.nim index 769e964..f9d689b 100644 --- a/datastore/sharedds.nim +++ b/datastore/sharedds.nim @@ -120,6 +120,7 @@ proc newSharedDataStore*[T: Datastore]( echo "\nnewDataStore: threadId:", getThreadId() # GC_ref(ds) res[].value[].ds = ds + res.createThreadDatastore() await wait(res[].signal) finally: echo "closing signal" diff --git a/datastore/threadbackend.nim b/datastore/threadbackend.nim index 6c06231..ba91ad8 100644 --- a/datastore/threadbackend.nim +++ b/datastore/threadbackend.nim @@ -129,20 +129,12 @@ proc put*( tds[].tp.spawn putTask(ret, tds[].backend, bkey, bval) -proc createThreadDatastore*( - ret: TResult[ThreadDatastorePtr], - backend: ThreadBackend, -) = - +proc createThreadDatastore*(ret: ThreadDatastorePtr): Result[void, ref CatchableError] = try: echo "createThreadDatastore: start" - ret[].value[].tp = Taskpool.new(num_threads = 2) - ret[].value[].tp.spawn startupDatastore(ret, backend) + ret[].tp = Taskpool.new(num_threads = 2) echo "createThreadDatastore: done" - ret[].state = Success except Exception as exc: - ret[].state = Error - ret[].error = exc.toBuffer() - discard + return err((ref DatastoreError)(msg: exc.msg))