aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_proc_sig_queue.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_proc_sig_queue.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_proc_sig_queue.h')
-rw-r--r--erts/emulator/beam/erl_proc_sig_queue.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_proc_sig_queue.h b/erts/emulator/beam/erl_proc_sig_queue.h
index d250ad820f..8b7cd35f61 100644
--- a/erts/emulator/beam/erl_proc_sig_queue.h
+++ b/erts/emulator/beam/erl_proc_sig_queue.h
@@ -733,6 +733,18 @@ Sint
erts_proc_sig_privqs_len(Process *c_p);
+/* SVERK: Doc me up! */
+erts_aint32_t
+erts_enqueue_signals(Process *rp, ErtsMessage *first,
+ ErtsMessage **last, ErtsMessage **last_next,
+ Uint msg_cnt,
+ erts_aint32_t in_state);
+
+/* SVERK: Doc me up! */
+void
+erts_proc_sig_send_pending(ErtsSchedulerData* esdp);
+
+
typedef struct {
Uint size;
ErtsMessage *msgp;