mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-05 23:23:10 +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]
|
container*: ptr tuple[value: T, cnt: int]
|
||||||
|
|
||||||
proc incr*[T](a: var SharedPtr[T]) =
|
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)
|
let res = atomicAddFetch(a.cnt, 1, ATOMIC_RELAXED)
|
||||||
echoed "SharedPtr: manual incr: ", res
|
echoed "SharedPtr: incr: ", res
|
||||||
|
|
||||||
proc decr*[T](x: var SharedPtr[T]) =
|
proc decr*[T](x: var SharedPtr[T]) =
|
||||||
if x.container != nil:
|
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]) =
|
proc `=copy`*[T](dest: var SharedPtr[T], src: SharedPtr[T]) =
|
||||||
if src.container != nil:
|
if src.container != nil:
|
||||||
# echo "SharedPtr: copy: ", src.container.pointer.repr
|
# 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)
|
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)
|
`=destroy`(dest)
|
||||||
dest.container = src.container
|
dest.container = src.container
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user