mirror of
https://github.com/logos-storage/apatheia.git
synced 2026-01-02 13:03:11 +00:00
refactor
This commit is contained in:
parent
8becb6ab5b
commit
2ac09d1e2c
@ -21,7 +21,6 @@ logScope:
|
||||
##
|
||||
|
||||
type
|
||||
JobId* = uint ## job id, should match `future.id()`
|
||||
|
||||
JobQueue*[T] = ref object
|
||||
## job queue object
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -2,3 +2,5 @@
|
||||
type
|
||||
ApatheiaException* = object of CatchableError
|
||||
ApatheiaSignalErr* = object of ApatheiaException
|
||||
|
||||
JobId* = uint ## job id, should match `future.id()`
|
||||
Loading…
x
Reference in New Issue
Block a user