mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-07 08:03:13 +00:00
create backend
This commit is contained in:
parent
ef32d38f58
commit
591b7f1fd4
@ -85,9 +85,11 @@ proc newSharedDataStore*(
|
|||||||
res[].signal = ThreadSignalPtr.new().valueOr:
|
res[].signal = ThreadSignalPtr.new().valueOr:
|
||||||
return failure newException(DatastoreError, "error creating signal")
|
return failure newException(DatastoreError, "error creating signal")
|
||||||
|
|
||||||
echo "sds:res: ", res.repr
|
|
||||||
res.createThreadDatastore(backend)
|
res.createThreadDatastore(backend)
|
||||||
await wait(res[].signal)
|
await wait(res[].signal)
|
||||||
res[].signal.close()
|
res[].signal.close()
|
||||||
|
|
||||||
|
echo "\nnewSharedDataStore:state: ", res[].state.repr
|
||||||
|
echo "\nnewSharedDataStore:value: ", res[].value[].backend.repr
|
||||||
|
|
||||||
success self
|
success self
|
||||||
|
|||||||
@ -53,7 +53,7 @@ type
|
|||||||
|
|
||||||
ThreadDatastore* = object
|
ThreadDatastore* = object
|
||||||
tp: Taskpool
|
tp: Taskpool
|
||||||
backendDatastore: ThreadBackendKind
|
backend*: ThreadBackendKind
|
||||||
|
|
||||||
ThreadDatastorePtr* = SharedPtr[ThreadDatastore]
|
ThreadDatastorePtr* = SharedPtr[ThreadDatastore]
|
||||||
|
|
||||||
@ -62,6 +62,10 @@ type
|
|||||||
|
|
||||||
TestPtr* = SharedPtr[Test]
|
TestPtr* = SharedPtr[Test]
|
||||||
|
|
||||||
|
var
|
||||||
|
fsDatastore {.threadvar.}: FSDatastore ##\
|
||||||
|
## TODO: figure out a better way to capture this?
|
||||||
|
|
||||||
proc newThreadResult*[T](tp: typedesc[T]): TResult[T] =
|
proc newThreadResult*[T](tp: typedesc[T]): TResult[T] =
|
||||||
newSharedPtr(ThreadResult[T])
|
newSharedPtr(ThreadResult[T])
|
||||||
|
|
||||||
@ -86,7 +90,7 @@ proc startupDatastore(
|
|||||||
ignoreProtected = backend.ignoreProtected
|
ignoreProtected = backend.ignoreProtected
|
||||||
)
|
)
|
||||||
if ds.isOk:
|
if ds.isOk:
|
||||||
# ret[].value[].backendDatastore = ds.get()
|
fsDatastore = ds.get()
|
||||||
ret[].state = Success
|
ret[].state = Success
|
||||||
else:
|
else:
|
||||||
ret[].state = Error
|
ret[].state = Error
|
||||||
@ -94,13 +98,12 @@ proc startupDatastore(
|
|||||||
ret[].state = Success
|
ret[].state = Success
|
||||||
of TestBackend:
|
of TestBackend:
|
||||||
echo "startupDatastore: TestBackend"
|
echo "startupDatastore: TestBackend"
|
||||||
ret[].value[].backendDatastore = TestBackend
|
ret[].value[].backend = TestBackend
|
||||||
ret[].state = Success
|
ret[].state = Success
|
||||||
else:
|
else:
|
||||||
discard
|
discard
|
||||||
|
|
||||||
echo "startupDatastore: signal"
|
echo "startupDatastore: signal", ret[].signal.fireSync().get()
|
||||||
discard ret[].signal.fireSync().get()
|
|
||||||
|
|
||||||
proc getTask*(
|
proc getTask*(
|
||||||
self: ThreadDatastorePtr,
|
self: ThreadDatastorePtr,
|
||||||
|
|||||||
@ -21,7 +21,7 @@ suite "Test Basic SharedDatastore":
|
|||||||
kind: TestBackend,
|
kind: TestBackend,
|
||||||
)
|
)
|
||||||
let sds = await newSharedDataStore(backend)
|
let sds = await newSharedDataStore(backend)
|
||||||
echo "sds: ", repr sds
|
# echo "sds: ", repr sds
|
||||||
|
|
||||||
# suite "Test Basic FSDatastore":
|
# suite "Test Basic FSDatastore":
|
||||||
# let
|
# let
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user