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.

Reply via email to