New concurrency model: next steps
This commit is contained in:
parent
8e08ff559f
commit
3b69a8d27a
23 changed files with 460 additions and 200 deletions
|
|
@ -51,7 +51,7 @@ proc split(t: var PAvlNode) =
|
|||
t.link[0] = temp
|
||||
inc t.level
|
||||
|
||||
proc add(a: var TMemRegion, t: var PAvlNode, key, upperBound: int) =
|
||||
proc add(a: var TMemRegion, t: var PAvlNode, key, upperBound: int) {.gcsafe.} =
|
||||
if t == bottom:
|
||||
t = allocAvlNode(a, key, upperBound)
|
||||
else:
|
||||
|
|
@ -64,7 +64,7 @@ proc add(a: var TMemRegion, t: var PAvlNode, key, upperBound: int) =
|
|||
skew(t)
|
||||
split(t)
|
||||
|
||||
proc del(a: var TMemRegion, t: var PAvlNode, x: int) =
|
||||
proc del(a: var TMemRegion, t: var PAvlNode, x: int) {.gcsafe.} =
|
||||
if t == bottom: return
|
||||
a.last = t
|
||||
if x <% t.key:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue