diff options
author | Patrik Nyblom <[email protected]> | 2013-04-05 18:51:50 +0200 |
---|---|---|
committer | Patrik Nyblom <[email protected]> | 2013-04-05 18:51:50 +0200 |
commit | b9ef8bac23fa0421765afe3073f430a1f0d92260 (patch) | |
tree | 94428e0a154e4c7c835d56b92fb0e42eda19b12c /erts/emulator/beam/erl_ptab.c | |
parent | b269e15eea9232205a371d6b10c50628d836b661 (diff) | |
parent | 7b31cdb80624567568474d79bff07e053457a450 (diff) | |
download | otp-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.c | 9 |
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); } /* |