This commit is contained in:
Jaremy Creechley 2023-08-28 21:45:55 -07:00
parent e8f9c69319
commit 9c3542ac3d
No known key found for this signature in database
GPG Key ID: 4E66FB67B21D3300
3 changed files with 9 additions and 14 deletions

View File

@ -105,7 +105,7 @@ method close*(
## this can block... how to handle? maybe just leak?
self.tds[].tp.shutdown()
proc newSharedDataStore*[T: Datastore](
proc newSharedDataStore*(
ds: Datastore,
): Future[?!SharedDatastore] {.async.} =
@ -120,7 +120,10 @@ proc newSharedDataStore*[T: Datastore](
echo "\nnewDataStore: threadId:", getThreadId()
# GC_ref(ds)
res[].value[].ds = ds
res.createThreadDatastore()
try:
res[].value[].tp = Taskpool.new(num_threads = 2)
except Exception as exc:
return err((ref DatastoreError)(msg: exc.msg))
await wait(res[].signal)
finally:
echo "closing signal"

View File

@ -128,13 +128,3 @@ proc put*(
print "bval: ", bval
tds[].tp.spawn putTask(ret, tds[].backend, bkey, bval)
proc createThreadDatastore*(ret: ThreadDatastorePtr): Result[void, ref CatchableError] =
try:
echo "createThreadDatastore: start"
ret[].tp = Taskpool.new(num_threads = 2)
echo "createThreadDatastore: done"
except Exception as exc:
return err((ref DatastoreError)(msg: exc.msg))

View File

@ -1,13 +1,14 @@
import std/options
import std/sequtils
import std/os
from std/algorithm import sort, reversed
import std/algorithm
import pkg/asynctest/unittest2
import pkg/chronos
import pkg/stew/results
import pkg/stew/byteutils
import pkg/datastore/memoryds
import pkg/datastore/sharedds
import ./dscommontests
@ -24,7 +25,8 @@ suite "Test Basic SharedDatastore":
let backend = ThreadBackend(
kind: TestBackend,
)
let res = await newSharedDataStore(backend)
let mem = MemoryDatastore.new()
let res = await newSharedDataStore(mem)
check res.isOk()
sds = res.get()
# echo "sds: ", repr sds