aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_ptab.c
diff options
context:
space:
mode:
authorPatrik Nyblom <[email protected]>2013-04-05 18:51:50 +0200
committerPatrik Nyblom <[email protected]>2013-04-05 18:51:50 +0200
commitb9ef8bac23fa0421765afe3073f430a1f0d92260 (patch)
tree94428e0a154e4c7c835d56b92fb0e42eda19b12c /erts/emulator/beam/erl_ptab.c
parentb269e15eea9232205a371d6b10c50628d836b661 (diff)
parent7b31cdb80624567568474d79bff07e053457a450 (diff)
downloadotp-b9ef8bac23fa0421765afe3073f430a1f0d92260.tar.gz
otp-b9ef8bac23fa0421765afe3073f430a1f0d92260.tar.bz2
otp-b9ef8bac23fa0421765afe3073f430a1f0d92260.zip
Merge branch 'maint-r16' into maint
Conflicts: erts/vsn.mk
Diffstat (limited to 'erts/emulator/beam/erl_ptab.c')
-rw-r--r--erts/emulator/beam/erl_ptab.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/erts/emulator/beam/erl_ptab.c b/erts/emulator/beam/erl_ptab.c
index 87beeafa1a..5bbc71c659 100644
--- a/erts/emulator/beam/erl_ptab.c
+++ b/erts/emulator/beam/erl_ptab.c
@@ -421,6 +421,7 @@ erts_ptab_init_table(ErtsPTab *ptab,
void (*release_element)(void *),
ErtsPTabElementCommon *invalid_element,
int size,
+ UWord element_size,
char *name)
{
size_t tab_sz;
@@ -443,6 +444,7 @@ erts_ptab_init_table(ErtsPTab *ptab,
bits = erts_fit_in_bits_int32((Sint32) size - 1);
}
+ ptab->r.o.element_size = element_size;
ptab->r.o.max = size;
tab_sz = ERTS_ALC_CACHE_LINE_ALIGN_SIZE(size*sizeof(erts_smp_atomic_t));
@@ -670,9 +672,10 @@ erts_ptab_delete_element(ErtsPTab *ptab,
}
if (ptab->r.o.release_element)
- erts_schedule_thr_prgr_later_op(ptab->r.o.release_element,
- (void *) ptab_el,
- &ptab_el->u.release);
+ erts_schedule_thr_prgr_later_cleanup_op(ptab->r.o.release_element,
+ (void *) ptab_el,
+ &ptab_el->u.release,
+ ptab->r.o.element_size);
}
/*