aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2019-04-01 15:58:55 +0200
committerLukas Larsson <[email protected]>2019-04-09 14:29:10 +0200
commit0da1be58ca21279e38d41527e4566d4d1d3ff37b (patch)
tree23bd223388ad64df2b22a3600bcbad9d90c6fb6d /erts/emulator/beam
parent9dd74aa69908687a4c43eb03da603a0385948267 (diff)
downloadotp-0da1be58ca21279e38d41527e4566d4d1d3ff37b.tar.gz
otp-0da1be58ca21279e38d41527e4566d4d1d3ff37b.tar.bz2
otp-0da1be58ca21279e38d41527e4566d4d1d3ff37b.zip
erts: Yield when exiting/free process is suspended by de
Complementory fix to 922fd355831575965
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r--erts/emulator/beam/erl_process.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index 9e662632b4..2b45d2d353 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -12141,10 +12141,9 @@ erts_proc_exit_handle_dist_monitor(ErtsMonitor *mon, void *vctxt, Sint reds)
reason);
switch (code) {
case ERTS_DSIG_SEND_CONTINUE:
+ case ERTS_DSIG_SEND_YIELD:
erts_set_gc_state(c_p, 0);
ctxt->dist_state = erts_dsend_export_trap_context(c_p, &ctx);
- /* fall-through */
- case ERTS_DSIG_SEND_YIELD:
break;
case ERTS_DSIG_SEND_OK:
break;
@@ -12388,11 +12387,10 @@ erts_proc_exit_handle_dist_link(ErtsLink *lnk, void *vctxt, Sint reds)
reason,
SEQ_TRACE_TOKEN(c_p));
switch (code) {
+ case ERTS_DSIG_SEND_YIELD:
case ERTS_DSIG_SEND_CONTINUE:
erts_set_gc_state(c_p, 0);
ctxt->dist_state = erts_dsend_export_trap_context(c_p, &ctx);
- /* fall-through */
- case ERTS_DSIG_SEND_YIELD:
break;
case ERTS_DSIG_SEND_OK:
break;