diff options
author | Rickard Green <[email protected]> | 2011-05-10 20:12:02 +0200 |
---|---|---|
committer | Rickard Green <[email protected]> | 2011-05-13 14:23:01 +0200 |
commit | 434cab885e50dd72f3c4f87f30d9ee21085cc657 (patch) | |
tree | 829377dd2c4ae8e0a8fc2f8695ad3db90f922390 /erts | |
parent | 498a1d56be241458c85231b5f9da43f4eac0b033 (diff) | |
download | otp-434cab885e50dd72f3c4f87f30d9ee21085cc657.tar.gz otp-434cab885e50dd72f3c4f87f30d9ee21085cc657.tar.bz2 otp-434cab885e50dd72f3c4f87f30d9ee21085cc657.zip |
Ensure that stack updates are seen when stack is released
Ets tables using ordered_set could potentially get into an
internally inconsistent state.
Diffstat (limited to 'erts')
-rw-r--r-- | erts/emulator/beam/erl_db_tree.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_db_tree.c b/erts/emulator/beam/erl_db_tree.c index a59c0c258d..d5b02584a5 100644 --- a/erts/emulator/beam/erl_db_tree.c +++ b/erts/emulator/beam/erl_db_tree.c @@ -111,7 +111,7 @@ static void release_stack(DbTableTree* tb, DbTreeStack* stack) { if (stack == &tb->static_stack) { ASSERT(erts_smp_atomic_read(&tb->is_stack_busy) == 1); - erts_smp_atomic_set(&tb->is_stack_busy, 0); + erts_smp_atomic_set_relb(&tb->is_stack_busy, 0); } else { erts_db_free(ERTS_ALC_T_DB_STK, (DbTable *) tb, |