diff options
author | Sverker Eriksson <[email protected]> | 2016-10-26 16:42:05 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2016-10-26 17:30:25 +0200 |
commit | 6408400fc1ca9609169f6a0450f1c4671aced91c (patch) | |
tree | f22a7379d38e3db9de31fe2c063801d89ff652c4 /erts/emulator/beam/beam_load.h | |
parent | 23ecba248ade6e4f1a6ed58c6636598643916019 (diff) | |
download | otp-6408400fc1ca9609169f6a0450f1c4671aced91c.tar.gz otp-6408400fc1ca9609169f6a0450f1c4671aced91c.tar.bz2 otp-6408400fc1ca9609169f6a0450f1c4671aced91c.zip |
erts: Avoid delayed fun undef race
Avoid suspending fun caller not just if purge is already done
but also if purge of another module has started. Another purge
of the same module again cannot happen as making current to old
transition includes thread progress.
Diffstat (limited to 'erts/emulator/beam/beam_load.h')
-rw-r--r-- | erts/emulator/beam/beam_load.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/erts/emulator/beam/beam_load.h b/erts/emulator/beam/beam_load.h index 1200bb9c6f..9be5e14e40 100644 --- a/erts/emulator/beam/beam_load.h +++ b/erts/emulator/beam/beam_load.h @@ -124,7 +124,8 @@ int erts_is_module_native(BeamCodeHeader* code); void erts_beam_bif_load_init(void); struct erl_fun_entry; void erts_purge_state_add_fun(struct erl_fun_entry *fe); -Export *erts_suspend_process_on_pending_purge_lambda(Process *c_p); +Export *erts_suspend_process_on_pending_purge_lambda(Process *c_p, + struct erl_fun_entry*); /* * Layout of the line table. |