aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2011-05-10 20:12:02 +0200
committerRickard Green <[email protected]>2011-05-13 14:23:01 +0200
commit434cab885e50dd72f3c4f87f30d9ee21085cc657 (patch)
tree829377dd2c4ae8e0a8fc2f8695ad3db90f922390 /erts/emulator
parent498a1d56be241458c85231b5f9da43f4eac0b033 (diff)
downloadotp-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/emulator')
-rw-r--r--erts/emulator/beam/erl_db_tree.c2
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,