X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=curveopt.py;fp=curveopt.py;h=e07e7250626349cd37838000d81881ba3ff90460;hb=7dee260ab0c5dcca005f532adcd0ee6e6547bb5f;hp=87438895f199d5a34d028f03a1294fe0bae51afe;hpb=b1e11931c2100a068f61c54c5b11506e77c4333b;p=moebius3.git diff --git a/curveopt.py b/curveopt.py index 8743889..e07e725 100644 --- a/curveopt.py +++ b/curveopt.py @@ -64,6 +64,14 @@ class OptimisedCurve(): print(s, file=subproc.stdin) subproc.stdin.flush() + oc.subproc = subproc + oc.nt = nt + + def _await_subproc(oc): + subproc = oc.subproc + if subproc is None: return + + dbg('(awaiting)') commentary = '' while True: @@ -87,14 +95,15 @@ class OptimisedCurve(): subproc.stdin.close() subproc.wait() assert(subproc.returncode == 0) + oc.subproc = None - oc.nt = nt oc._result = np.reshape(findcurve_result, (-1,3), 'C') dbg(repr(oc._result)) vdbg().curve( oc.point_at_t ) def point_at_it(oc, it): + oc._await_subproc() dbg(repr((it,))) return oc._result[it]