From 567e0d700351a13e8b5c603cf9cf6820f0653635 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Thu, 24 Aug 2023 19:02:46 -0700 Subject: [PATCH] fixes --- datastore/sharedds.nim | 9 +++------ datastore/threadbackend.nim | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/datastore/sharedds.nim b/datastore/sharedds.nim index 573e7e3..1bc22e0 100644 --- a/datastore/sharedds.nim +++ b/datastore/sharedds.nim @@ -22,10 +22,6 @@ type # stores*: Table[Key, SharedDatastore] tds: ThreadDatastorePtr -template newSignal(): auto = - ThreadSignalPtr.new().valueOr: - return failure newException(DatastoreError, "error creating signal") - method has*( self: SharedDatastore, key: Key @@ -78,13 +74,14 @@ method close*( proc newSharedDataStore*( # T: typedesc[SharedDatastore], backend: ThreadBackend, -): ?!SharedDatastore = +): Future[?!SharedDatastore] {.async.} = var self = SharedDatastore() res = newThreadResult(ThreadDatastorePtr) - res[].signal = newSignal() + res[].signal = ThreadSignalPtr.new().valueOr: + return failure newException(DatastoreError, "error creating signal") res.createThreadDatastore(backend) await wait(res[].signal) diff --git a/datastore/threadbackend.nim b/datastore/threadbackend.nim index f9438a0..fb289ea 100644 --- a/datastore/threadbackend.nim +++ b/datastore/threadbackend.nim @@ -23,7 +23,7 @@ type Success Error - ThreadResult*[T: DataBuffer | void] = object + ThreadResult*[T: DataBuffer | void | ThreadDatastorePtr] = object state*: ThreadResultKind signal*: ThreadSignalPtr value*: T