Skip to content

Instantly share code, notes, and snippets.

@fowlmouth
Created March 23, 2014 04:46
Show Gist options
  • Save fowlmouth/9718956 to your computer and use it in GitHub Desktop.
Save fowlmouth/9718956 to your computer and use it in GitHub Desktop.
import signals, strutils
echo "\L--- GC TEST ---"
var displayUpdate = initSignal[void]()
type
GCO = ref object of TObject
id : int
slots:seq[PSignalBase]
assert GCO is HasSlots
var counter = 0
proc newGCO : GCO =
result.new do (x:GCO):
echo "Free'd GCO #", x.id
result.id = counter
newseq result.slots,0
counter.inc
proc display (x: GCO) =
echo "display #",x.id
block:
for i in 0 .. 5:
let x = newGCO()
displayUpdate.connect x, display
displayUpdate()
gc_fullCollect()
displayUpdate.clear
gc_fullCollect()
echo "GC should be done! signal has been cleared."
displayUpdate()
gc_fullCollect()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment