On Wed, Aug 10, 2016 at 2:17 PM, Kit Adams <[email protected]> wrote:
> I am investigating the feasibility of embedding Julia in a C++ real-time > signal processing framework, using Julia-0.4.6 (BTW, the performance is > looking amazing). > > However, for this usage I need to retain Julia state variables across c++ > function calls, so the stack based JL_GC_PUSH() and JL_GC_POP() are not > sufficient. > When I injected some jl_gc_collect() calls for testing purposes, to > simulate having multiple Julia scripts running (from the same thread), I > got crashes, which I was able to fix using e.g. jl_gc_preserve(mMyState); > and appropriate matching jl_gc_unpreserve() calls. > > I see these functions have been removed from the latest Julia version. > > Is there an alternative that allows Julia values to be retained in a C++ > app across gc calls? > Copy from my reply on github > This never works in the way you think it did. For keeping a value live, put it in a rooted global array.
