mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-17 04:53:08 +00:00
impl delete
This commit is contained in:
parent
0f32ea2344
commit
eb435971f0
@ -81,7 +81,6 @@ proc get*(
|
||||
let bkey = StringBuffer.new(key.id())
|
||||
tds[].tp.spawn getTask(ret, tds, bkey)
|
||||
|
||||
import os
|
||||
|
||||
proc putTask*(
|
||||
ret: TResult[void],
|
||||
@ -118,3 +117,30 @@ proc put*(
|
||||
print "bval: ", bval
|
||||
|
||||
tds[].tp.spawn putTask(ret, tds, bkey, bval)
|
||||
|
||||
proc deleteTask*(
|
||||
ret: TResult[void],
|
||||
tds: ThreadDatastorePtr,
|
||||
kb: KeyBuffer,
|
||||
) =
|
||||
|
||||
without key =? kb.toKey(), err:
|
||||
ret[].state = Error
|
||||
|
||||
let res = (waitFor tds[].ds.delete(key)).catch
|
||||
# print "thrbackend: putTask: fire", ret[].signal.fireSync().get()
|
||||
if res.isErr:
|
||||
ret[].state = Error
|
||||
ret[].error = res.error().toBuffer()
|
||||
else:
|
||||
ret[].state = Success
|
||||
|
||||
discard ret[].signal.fireSync()
|
||||
|
||||
proc delete*(
|
||||
ret: TResult[void],
|
||||
tds: ThreadDatastorePtr,
|
||||
key: Key,
|
||||
) =
|
||||
let bkey = StringBuffer.new(key.id())
|
||||
tds[].tp.spawn deleteTask(ret, tds, bkey)
|
||||
|
||||
@ -23,7 +23,6 @@ push: {.upraises: [].}
|
||||
|
||||
type
|
||||
ThreadProxyDatastore* = ref object of Datastore
|
||||
# stores*: Table[Key, ThreadProxyDatastore]
|
||||
tds: ThreadDatastorePtr
|
||||
|
||||
method has*(
|
||||
@ -36,8 +35,22 @@ method delete*(
|
||||
self: ThreadProxyDatastore,
|
||||
key: Key
|
||||
): Future[?!void] {.async.} =
|
||||
|
||||
without ret =? newThreadResult(void), err:
|
||||
return failure(err)
|
||||
|
||||
echo "res: ", ret
|
||||
try:
|
||||
delete(ret, self.tds, key)
|
||||
await wait(ret[].signal)
|
||||
finally:
|
||||
echo "closing signal"
|
||||
ret[].signal.close()
|
||||
|
||||
echo "\nSharedDataStore:put:value: ", ret[].repr
|
||||
return success()
|
||||
|
||||
|
||||
method delete*(
|
||||
self: ThreadProxyDatastore,
|
||||
keys: seq[Key]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user