more changes

This commit is contained in:
Jaremy Creechley 2023-08-24 18:33:20 -07:00 committed by Dmitriy Ryajov
parent a0d60cc9be
commit 972ee22efd
No known key found for this signature in database
GPG Key ID: DA8C680CE7C657A4

View File

@ -18,9 +18,14 @@ push: {.upraises: [].}
type type
ThreadResultKind* {.pure.} = enum
NotReady
Success
Error
ThreadResult*[T: DataBuffer | void] = object ThreadResult*[T: DataBuffer | void] = object
ready*: bool state*: ThreadResultKind
success*: bool signal*: ThreadSignalPtr
val*: T val*: T
err*: CatchableErrorBuffer err*: CatchableErrorBuffer
@ -52,7 +57,7 @@ proc new*[T](tp: typedesc[TResult[T]]): TResult[T] =
proc startupDatastore( proc startupDatastore(
signal: ThreadSignalPtr, signal: ThreadSignalPtr,
backend: ThreadBackend, backend: ThreadBackend,
res: TResult[ThreadDatastorePtr], ret: TResult[ThreadDatastorePtr],
): bool = ): bool =
## starts up a FS instance on a give thread ## starts up a FS instance on a give thread
case backend.kind: case backend.kind:
@ -67,33 +72,30 @@ proc startupDatastore(
let tds = newSharedPtr(ThreadDatastore) let tds = newSharedPtr(ThreadDatastore)
tds[].backendDatastore = ds.get() tds[].backendDatastore = ds.get()
res[].ready = true ret[].val = tds
res[].success = true ret[].state = Success
res[].val = tds
else: else:
res[].ready = true ret[].state = Error
res[].success = false
else: else:
discard discard
signal.fireSync().get() ret[].signal.fireSync().get()
proc get*( proc getTask*(
self: ThreadDatastore, self: ThreadDatastorePtr,
signal: ThreadSignalPtr,
key: KeyBuffer
): Result[DataBuffer, CatchableErrorBuffer] =
return ok(DataBuffer.new())
proc putWorker*(
self: ThreadDatastore,
signal: ThreadSignalPtr,
key: KeyBuffer, key: KeyBuffer,
data: DataBuffer, ret: TResult[DataBuffer]
res: TResult[void]
) = ) =
# return ok(DataBuffer.new())
discard
proc putTask*(
self: ThreadDatastorePtr,
key: KeyBuffer,
data: DataBuffer,
ret: TResult[void]
) =
discard discard
# proc close*( # proc close*(
@ -110,7 +112,7 @@ func new*[S: ref Datastore](
T: typedesc[ThreadDatastore], T: typedesc[ThreadDatastore],
signal: ThreadSignalPtr, signal: ThreadSignalPtr,
backend: ThreadBackend, backend: ThreadBackend,
res: TResult[ThreadDatastore] ret: TResult[ThreadDatastore]
) = ) =
var self = T() var self = T()