Reset all julia data from C

I thought that jl_atexit_hook cleared all of julia data, but when I do something along the lines of

jl_init();
jl_eval_str("x = 5");
jl_atexit_hook(0);

jl_init();
jl_unbox_int64(jl_eval_str("x"));
jl_atexit_hook(0);

When I unbox the x, it still has the value 5. I want this code to behave as if the first init/atexit_hook code was never run. What’s the right function to do that?