Mercurial > repos > rhope
diff nworker.rhope @ 89:5a195ee08eac
Fix memory leak and bug that was preventing First@Dictionary from working properly
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 31 Jul 2010 00:19:15 -0400 |
parents | 3c4325e6298f |
children | bcdc326b3d6e |
line wrap: on
line diff
--- a/nworker.rhope Fri Jul 30 19:52:54 2010 -0400 +++ b/nworker.rhope Sat Jul 31 00:19:15 2010 -0400 @@ -1331,7 +1331,8 @@ }{ ,setref <- [begin setter]Write Field["obj", name] { - setter <- [[~]Unbox["newval", setref] + setter <- [[[~]Unbox["newval", setref] + ]Release["newval"] ]Move["obj", "out"] } } @@ -1422,7 +1423,16 @@ Register Method@NProgram[prog, name, convention, inputs, outputs: out] { - out <- [prog]Worker Refs <<[ [[prog]Worker Refs >>]Set[name, Worker Ref[name, convention, inputs, outputs, Yes]]] + [[prog]Worker Refs >>]Index[name] + { + ref <- [[[[~]Inputs <<[ Max[[~]Inputs >>, inputs] ] + ]Min Inputs <<[ Min[[~]Min Inputs >>, inputs] ] + ]Outputs <<[ Max[[~]Outputs >>, outputs] ] + ]Min Outputs <<[ Min[[~]Min Outputs >>, outputs] ] + }{ + ref <- Worker Ref[name, convention, inputs, outputs, Yes] + } + out <- [prog]Worker Refs <<[ [[prog]Worker Refs >>]Set[name, ref]] } Register Worker@NProgram[prog, name, convention, inputs, outputs: out]