diff options
author | Zandra Hird <[email protected]> | 2015-07-07 15:17:10 +0200 |
---|---|---|
committer | Zandra Hird <[email protected]> | 2015-07-07 15:17:10 +0200 |
commit | 832aa9e06aced4975c9cb02257f74827602217aa (patch) | |
tree | 4f5e5263bd6e578fe6fa2a619bfd3bec9a0c512b /erts/emulator/beam/erl_process.c | |
parent | ddc7ce9124a8fb03bb95b5d550812c34f4177946 (diff) | |
parent | 12002949e5435d19c750fe2cd8e897b4059f875a (diff) | |
download | otp-832aa9e06aced4975c9cb02257f74827602217aa.tar.gz otp-832aa9e06aced4975c9cb02257f74827602217aa.tar.bz2 otp-832aa9e06aced4975c9cb02257f74827602217aa.zip |
Merge branch 'maint-17' into maint
Conflicts:
OTP_VERSION
erts/doc/src/notes.xml
erts/vsn.mk
lib/runtime_tools/doc/src/notes.xml
lib/runtime_tools/vsn.mk
otp_versions.table
Diffstat (limited to 'erts/emulator/beam/erl_process.c')
-rw-r--r-- | erts/emulator/beam/erl_process.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c index 7b3d12ce09..ee1dd36d48 100644 --- a/erts/emulator/beam/erl_process.c +++ b/erts/emulator/beam/erl_process.c @@ -11409,6 +11409,22 @@ set_proc_exiting(Process *p, KILL_CATCHES(p); p->i = (BeamInstr *) beam_exit; +#ifndef ERTS_SMP + if (state & (ERTS_PSFLG_RUNNING|ERTS_PSFLG_RUNNING_SYS)) { + /* + * I non smp case: + * + * Currently executing process might be sent an exit + * signal if it is traced by a port that it also is + * linked to, and the port terminates during the + * trace. In this case we want schedule out the + * process as quickly as possible in order to detect + * the event as fast as possible. + */ + ERTS_VBUMP_ALL_REDS(p); + } +#endif + if (enqueue) add2runq(enqueue > 0 ? p : make_proxy_proc(NULL, p, enq_prio), state, |