From 2f3449e92c7908a068a386131609bc982f6f3b71 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Tue, 5 Sep 2023 17:08:40 -0700 Subject: [PATCH] move into their own threads folder --- datastore/query.nim | 4 ++-- datastore/threadproxyds.nim | 3 +-- datastore/{ => threads}/databuffer.nim | 2 +- datastore/{ => threads}/threadbackend.nim | 4 ++-- datastore/{ => threads}/threadresults.nim | 10 +++++----- 5 files changed, 11 insertions(+), 12 deletions(-) rename datastore/{ => threads}/databuffer.nim (99%) rename datastore/{ => threads}/threadbackend.nim (99%) rename datastore/{ => threads}/threadresults.nim (95%) diff --git a/datastore/query.nim b/datastore/query.nim index 30c694c..a4f694d 100644 --- a/datastore/query.nim +++ b/datastore/query.nim @@ -7,8 +7,8 @@ import pkg/questionable/results import ./key import ./types -import ./databuffer -import ./threadresults +import ./threads/databuffer +import ./threads/threadresults export options, SortOrder type diff --git a/datastore/threadproxyds.nim b/datastore/threadproxyds.nim index adafb1e..4c8434a 100644 --- a/datastore/threadproxyds.nim +++ b/datastore/threadproxyds.nim @@ -12,8 +12,7 @@ import pkg/threading/smartptrs import ./key import ./query import ./datastore -import ./threadbackend -import ./fsds +import ./threads/threadbackend export key, query diff --git a/datastore/databuffer.nim b/datastore/threads/databuffer.nim similarity index 99% rename from datastore/databuffer.nim rename to datastore/threads/databuffer.nim index 587b543..4611b94 100644 --- a/datastore/databuffer.nim +++ b/datastore/threads/databuffer.nim @@ -78,7 +78,7 @@ proc toBuffer*(err: ref Exception): CatchableErrorBuffer = msg: StringBuffer.new(err.msg) ) -import ./key +import ../key import stew/results proc new*(tp: typedesc[KeyBuffer], key: Key): KeyBuffer = diff --git a/datastore/threadbackend.nim b/datastore/threads/threadbackend.nim similarity index 99% rename from datastore/threadbackend.nim rename to datastore/threads/threadbackend.nim index 26d68f4..e9ffa1d 100644 --- a/datastore/threadbackend.nim +++ b/datastore/threads/threadbackend.nim @@ -7,8 +7,8 @@ import pkg/upraises import pkg/taskpools import pkg/threading/smartptrs -import ./key -import ./query +import ../key +import ../query import ./datastore import ./databuffer import ./threadresults diff --git a/datastore/threadresults.nim b/datastore/threads/threadresults.nim similarity index 95% rename from datastore/threadresults.nim rename to datastore/threads/threadresults.nim index 9910063..2afddf1 100644 --- a/datastore/threadresults.nim +++ b/datastore/threads/threadresults.nim @@ -44,8 +44,8 @@ type ## const - SignalPoolSize {.intdefine.} = 1024 - SignalPoolRetries {.intdefine.} = 1000 + SignalPoolSize {.intdefine.} = 10 + SignalPoolRetries {.intdefine.} = 10 var signalPoolLock: Lock @@ -84,13 +84,13 @@ proc getThreadSignal*(): Future[ThreadSignalPtr] {.async, raises: [].} = if signalPoolFree.len() > 0: let res = signalPoolFree.pop() signalPoolUsed.incl(res) - echo "get:signalPoolUsed:size: ", signalPoolUsed.len() + # echo "get:signalPoolUsed:size: ", signalPoolUsed.len() return res except KeyError: discard finally: signalPoolLock.release() - echo "wait:signalPoolUsed: " + # echo "wait:signalPoolUsed: " await sleepAsync(10.milliseconds) raise newException(DeadThreadDefect, "reached limit trying to acquire a ThreadSignalPtr") @@ -100,7 +100,7 @@ proc release*(sig: ThreadSignalPtr) {.raises: [].} = withLock(signalPoolLock): signalPoolUsed.excl(sig) signalPoolFree.incl(sig) - echo "free:signalPoolUsed:size: ", signalPoolUsed.len() + # echo "free:signalPoolUsed:size: ", signalPoolUsed.len() proc threadSafeType*[T: ThreadSafeTypes](tp: typedesc[T]) = ## Used to explicitly mark a type as threadsafe. It's checked