mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-04 22:53:08 +00:00
sweet, defect works
This commit is contained in:
parent
8b72f83995
commit
3e0d5c91c1
@ -34,7 +34,7 @@ method has*(
|
||||
has(ret, self.tds, key)
|
||||
await wait(ret[].signal)
|
||||
finally:
|
||||
ret[].signal.release()
|
||||
ret[].signal.close()
|
||||
|
||||
return ret.convert(bool)
|
||||
|
||||
@ -49,7 +49,7 @@ method delete*(
|
||||
delete(ret, self.tds, key)
|
||||
await wait(ret[].signal)
|
||||
finally:
|
||||
ret[].signal.release()
|
||||
ret[].signal.close()
|
||||
|
||||
return ret.convert(void)
|
||||
|
||||
@ -80,7 +80,7 @@ method get*(
|
||||
get(ret, self.tds, key)
|
||||
await wait(ret[].signal)
|
||||
finally:
|
||||
ret[].signal.release()
|
||||
ret[].signal.close()
|
||||
|
||||
return ret.convert(seq[byte])
|
||||
|
||||
@ -96,7 +96,7 @@ method put*(
|
||||
put(ret, self.tds, key, data)
|
||||
await wait(ret[].signal)
|
||||
finally:
|
||||
ret[].signal.release()
|
||||
ret[].signal.close()
|
||||
|
||||
return ret.convert(void)
|
||||
|
||||
@ -155,7 +155,7 @@ method query*(
|
||||
|
||||
proc dispose(): Future[?!void] {.async.} =
|
||||
iter[].it = nil # ensure our sharedptr doesn't try and dealloc
|
||||
ret[].signal.release()
|
||||
ret[].signal.close()
|
||||
return success()
|
||||
|
||||
iterWrapper.next = next
|
||||
|
||||
@ -38,8 +38,8 @@ type
|
||||
## result in likely memory corruption (use-after-free).
|
||||
|
||||
const
|
||||
SignalPoolSize {.intdefine.} = 1024
|
||||
SignalPoolRetries {.intdefine.} = 1_000
|
||||
SignalPoolSize {.intdefine.} = 20
|
||||
SignalPoolRetries {.intdefine.} = 10
|
||||
|
||||
var
|
||||
signalPoolLock: Lock
|
||||
@ -84,6 +84,7 @@ proc getThreadSignal*(): Future[ThreadSignalPtr] {.async, raises: [].} =
|
||||
discard
|
||||
finally:
|
||||
signalPoolLock.release()
|
||||
echo "wait:signalPoolUsed: "
|
||||
await sleepAsync(10.milliseconds)
|
||||
raise newException(DeadThreadDefect, "reached limit trying to acquire a ThreadSignalPtr")
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user