diff options
author | Sverker Eriksson <[email protected]> | 2018-04-26 19:14:31 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2018-04-26 19:14:31 +0200 |
commit | 613cde66c25464121f2f6dace99782bad0e07d9b (patch) | |
tree | f0300eb3b558342a89a97aacd4f141b56f22dca4 /erts/emulator/beam/erl_proc_sig_queue.h | |
parent | d7e27dd3174f61a6119cfaf505f5ede4b0ab5371 (diff) | |
download | otp-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.h | 12 |
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; |