@@ -37,7 +37,7 @@ static ERL_NIF_TERM atom_false;
3737
3838#define ASSERT (expr ) assert(expr)
3939
40- static ERL_NIF_TERM the_trace_enabled ;
40+ static ethr_atomic_t the_trace_enabled ; // ERL_NIF_TERM
4141static ethr_atomic_t the_sync ; // ERL_NIF_TERM
4242
4343static int load (ErlNifEnv * env , void * * priv_data , ERL_NIF_TERM load_info )
@@ -49,7 +49,7 @@ static int load(ErlNifEnv* env, void** priv_data, ERL_NIF_TERM load_info)
4949 atom_true = enif_make_atom (env , "true" );
5050 atom_false = enif_make_atom (env , "false" );
5151
52- the_trace_enabled = atom_discard ;
52+ erts_internal_test . ethr_atomic_init ( & the_trace_enabled , atom_discard ) ;
5353 erts_internal_test .ethr_atomic_init (& the_sync , atom_ok );
5454
5555 * priv_data = NULL ;
@@ -92,7 +92,7 @@ static ERL_NIF_TERM enabled(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
9292 //enif_fprintf(stderr, "erts_test_sync_tracer.enabled(%T, %T, %T)\n",
9393 // argv[0], argv[1], argv[2]);
9494
95- return the_trace_enabled ;
95+ return ( ERL_NIF_TERM ) erts_internal_test . ethr_atomic_read ( & the_trace_enabled ) ;
9696}
9797
9898static bool term_to_bool (ERL_NIF_TERM term , bool * res )
@@ -116,7 +116,8 @@ static ERL_NIF_TERM enable_trace(ErlNifEnv* env, int argc, const ERL_NIF_TERM ar
116116 if (!term_to_bool (argv [0 ], & is_enabled )) {
117117 return enif_make_badarg (env );
118118 }
119- the_trace_enabled = is_enabled ? atom_trace : atom_discard ;
119+ erts_internal_test .ethr_atomic_set (& the_trace_enabled ,
120+ is_enabled ? atom_trace : atom_discard );
120121 return atom_ok ;
121122}
122123
0 commit comments