replace: don't bother retracting null handles

This commit is contained in:
Emery Hemingway 2022-10-27 15:31:53 -05:00
parent 1a6bb4ffbd
commit 0039792e0b
1 changed files with 4 additions and 2 deletions

View File

@ -289,12 +289,14 @@ proc sync*(turn: var Turn; r, peer: Ref) =
proc replace*[T](turn: var Turn; `ref`: Ref; h: Handle; v: T): Handle =
result = publish(turn, `ref`, v)
retract(turn, h)
if h != default(Handle):
retract(turn, h)
proc replace*[T](turn: var Turn; `ref`: Ref; h: var Handle; v: T): Handle {.discardable.} =
var old = h
h = publish(turn, `ref`, v)
retract(turn, old)
if old != default(Handle):
retract(turn, old)
h
proc stop*(turn: var Turn) {.gcsafe.}