mirror of
https://github.com/status-im/nim-codex.git
synced 2025-02-24 08:28:26 +00:00
* implement async encode * implement async decode * cleanup code * add num-threads flag * fix tests * code cleanup * improve return types and exception handling for async proc * add validation check for numThreads flag * modify encode method * add new tests for aync encoding * modify decode method * cleanup test cases * add new cli flag for threadCount * test cleanup * add new tests * fix decodeAsync exception handling * code cleanup * chore: cosmetic changes
26 lines
690 B
Nim
26 lines
690 B
Nim
import std/sequtils
|
|
|
|
proc createDoubleArray*(
|
|
outerLen, innerLen: int
|
|
): ptr UncheckedArray[ptr UncheckedArray[byte]] =
|
|
# Allocate outer array
|
|
result = cast[ptr UncheckedArray[ptr UncheckedArray[byte]]](allocShared0(
|
|
sizeof(ptr UncheckedArray[byte]) * outerLen
|
|
))
|
|
|
|
# Allocate each inner array
|
|
for i in 0 ..< outerLen:
|
|
result[i] = cast[ptr UncheckedArray[byte]](allocShared0(sizeof(byte) * innerLen))
|
|
|
|
proc freeDoubleArray*(
|
|
arr: ptr UncheckedArray[ptr UncheckedArray[byte]], outerLen: int
|
|
) =
|
|
# Free each inner array
|
|
for i in 0 ..< outerLen:
|
|
if not arr[i].isNil:
|
|
deallocShared(arr[i])
|
|
|
|
# Free outer array
|
|
if not arr.isNil:
|
|
deallocShared(arr)
|