mirror of
https://github.com/logos-storage/apatheia.git
synced 2026-01-07 15:33:09 +00:00
refactor
This commit is contained in:
parent
8becb6ab5b
commit
2ac09d1e2c
@ -21,7 +21,6 @@ logScope:
|
|||||||
##
|
##
|
||||||
|
|
||||||
type
|
type
|
||||||
JobId* = uint ## job id, should match `future.id()`
|
|
||||||
|
|
||||||
JobQueue*[T] = ref object
|
JobQueue*[T] = ref object
|
||||||
## job queue object
|
## job queue object
|
||||||
|
|||||||
@ -1,6 +1,9 @@
|
|||||||
|
|
||||||
import std/tables
|
import std/tables
|
||||||
|
|
||||||
|
import ./types
|
||||||
|
export types
|
||||||
|
|
||||||
type
|
type
|
||||||
MemHolder* = ref object of RootObj
|
MemHolder* = ref object of RootObj
|
||||||
|
|
||||||
@ -12,13 +15,17 @@ type
|
|||||||
|
|
||||||
var memHolderTable = newTable[uint, seq[MemHolder]]()
|
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).}:
|
{.cast(gcsafe).}:
|
||||||
memHolderTable[].withValue(id, value):
|
memHolderTable[].withValue(id, value):
|
||||||
value[].add(mem)
|
value[].add(mem)
|
||||||
do:
|
do:
|
||||||
memHolderTable[id] = @[mem]
|
memHolderTable[id] = @[mem]
|
||||||
|
|
||||||
proc releaseMemory*[T: uint](id: T) {.gcsafe, raises: [].} =
|
proc releaseMemory*(id: JobId) {.gcsafe, raises: [].} =
|
||||||
{.cast(gcsafe).}:
|
{.cast(gcsafe).}:
|
||||||
memHolderTable.del(id)
|
memHolderTable.del(id)
|
||||||
|
|
||||||
|
proc retainedMemoryCount*(): int {.gcsafe, raises: [].} =
|
||||||
|
{.cast(gcsafe).}:
|
||||||
|
memHolderTable.len()
|
||||||
|
|||||||
@ -2,3 +2,5 @@
|
|||||||
type
|
type
|
||||||
ApatheiaException* = object of CatchableError
|
ApatheiaException* = object of CatchableError
|
||||||
ApatheiaSignalErr* = object of ApatheiaException
|
ApatheiaSignalErr* = object of ApatheiaException
|
||||||
|
|
||||||
|
JobId* = uint ## job id, should match `future.id()`
|
||||||
Loading…
x
Reference in New Issue
Block a user