From 2ac09d1e2c1f10f7144a0a6aa4633594b71a3f05 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Fri, 16 Feb 2024 14:08:35 -0700 Subject: [PATCH] refactor --- src/apatheia/jobs.nim | 1 - src/apatheia/memholders.nim | 11 +++++++++-- src/apatheia/types.nim | 2 ++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/apatheia/jobs.nim b/src/apatheia/jobs.nim index 27b9802..de2f8c3 100644 --- a/src/apatheia/jobs.nim +++ b/src/apatheia/jobs.nim @@ -21,7 +21,6 @@ logScope: ## type - JobId* = uint ## job id, should match `future.id()` JobQueue*[T] = ref object ## job queue object diff --git a/src/apatheia/memholders.nim b/src/apatheia/memholders.nim index ac6a2be..d4b8fc3 100644 --- a/src/apatheia/memholders.nim +++ b/src/apatheia/memholders.nim @@ -1,6 +1,9 @@ import std/tables +import ./types +export types + type MemHolder* = ref object of RootObj @@ -12,13 +15,17 @@ type var memHolderTable = newTable[uint, seq[MemHolder]]() -proc retainMemory*[T: uint](id: T, mem: MemHolder) {.gcsafe, raises: [].} = +proc retainMemory*(id: JobId, mem: MemHolder) {.gcsafe, raises: [].} = {.cast(gcsafe).}: memHolderTable[].withValue(id, value): value[].add(mem) do: memHolderTable[id] = @[mem] -proc releaseMemory*[T: uint](id: T) {.gcsafe, raises: [].} = +proc releaseMemory*(id: JobId) {.gcsafe, raises: [].} = {.cast(gcsafe).}: memHolderTable.del(id) + +proc retainedMemoryCount*(): int {.gcsafe, raises: [].} = + {.cast(gcsafe).}: + memHolderTable.len() diff --git a/src/apatheia/types.nim b/src/apatheia/types.nim index 6e156fd..8f1b085 100644 --- a/src/apatheia/types.nim +++ b/src/apatheia/types.nim @@ -2,3 +2,5 @@ type ApatheiaException* = object of CatchableError ApatheiaSignalErr* = object of ApatheiaException + + JobId* = uint ## job id, should match `future.id()` \ No newline at end of file