mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-03 06:03:06 +00:00
verifying types
This commit is contained in:
parent
1512f05245
commit
61461c9413
@ -50,9 +50,9 @@ type
|
||||
container*: ptr tuple[value: T, cnt: int]
|
||||
|
||||
proc incr*[T](a: var SharedPtr[T]) =
|
||||
if a.container != nil and a.cnt != nil:
|
||||
if a.container != nil:
|
||||
let res = atomicAddFetch(a.cnt, 1, ATOMIC_RELAXED)
|
||||
echoed "SharedPtr: manual incr: ", res
|
||||
echoed "SharedPtr: incr: ", res
|
||||
|
||||
proc decr*[T](x: var SharedPtr[T]) =
|
||||
if x.container != nil:
|
||||
@ -88,7 +88,10 @@ proc `=dup`*[T](src: SharedPtr[T]): SharedPtr[T] =
|
||||
proc `=copy`*[T](dest: var SharedPtr[T], src: SharedPtr[T]) =
|
||||
if src.container != nil:
|
||||
# echo "SharedPtr: copy: ", src.container.pointer.repr
|
||||
echoed "SharedPtr: copy:src: ", src.container.pointer.repr, " cnt: ", src.container.cnt, " tp: ", $(typeof(T))
|
||||
discard atomicAddFetch(addr src.container.cnt, 1, ATOMIC_RELAXED)
|
||||
if dest.container != nil:
|
||||
echoed "SharedPtr: copy:dest: ", dest.container.pointer.repr, " cnt: ", dest.container.cnt, " tp: ", $(typeof(T))
|
||||
`=destroy`(dest)
|
||||
dest.container = src.container
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user