Skip to content

Commit 6f5a014

Browse files
committed
fixup! erts: Fair handover of code permissions to first waiter
1 parent 02bd72b commit 6f5a014

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

erts/emulator/test/code_SUITE_data/erts_test_sync_tracer.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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
4141
static ethr_atomic_t the_sync; // ERL_NIF_TERM
4242

4343
static 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

9898
static 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

Comments
 (0)