aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-04-26 19:14:31 +0200
committerSverker Eriksson <[email protected]>2018-04-26 19:14:31 +0200
commit613cde66c25464121f2f6dace99782bad0e07d9b (patch)
treef0300eb3b558342a89a97aacd4f141b56f22dca4 /erts/emulator/beam/erl_process.h
parentd7e27dd3174f61a6119cfaf505f5ede4b0ab5371 (diff)
downloadotp-613cde66c25464121f2f6dace99782bad0e07d9b.tar.gz
otp-613cde66c25464121f2f6dace99782bad0e07d9b.tar.bz2
otp-613cde66c25464121f2f6dace99782bad0e07d9b.zip
erts: Optimize monitor signal by message piggyback
If no message/signal is sent (to same destination) then monitor signal is flushed when process is scheduled out.
Diffstat (limited to 'erts/emulator/beam/erl_process.h')
-rw-r--r--erts/emulator/beam/erl_process.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_process.h b/erts/emulator/beam/erl_process.h
index e2aa1d9f84..b66272194c 100644
--- a/erts/emulator/beam/erl_process.h
+++ b/erts/emulator/beam/erl_process.h
@@ -660,6 +660,13 @@ struct ErtsSchedulerData_ {
Uint64 out;
Uint64 in;
} io;
+ struct {
+ ErtsSignal* sig;
+ Eterm to;
+#ifdef DEBUG
+ Process* dbg_from;
+#endif
+ } pending_signal;
Uint64 reductions;
ErtsSchedWallTime sched_wall_time;