Age | Commit message (Collapse) | Author |
|
Add enif_set_pid_undefined & enif_is_pid_undefined
|
|
'lukas/erts/fragment-dist-messages/OTP-13397/OTP-15610/OTP-15611/OTP-15612/OTP-15613'
* lukas/erts/fragment-dist-messages/OTP-13397/OTP-15610/OTP-15611/OTP-15612/OTP-15613:
erts: Add debug dist obuf memory leak check
win32: Fix ./otp_build debuginfo_win32
Make ld.sh on windows print better error reason
erts: Fix so that externals with creation 0 compare equal to all
erts: Expand etp to look for free processes
erts: Implement trapping while sending distr exit/down
erts: Add ERL_NODE_BOOKKEEP to node tables refc
erts: Refactor ErtsSendContext to be ErtsDSigSendContext
erts: Add distr testcases for fragmentation
erts: Make remote send of exit/2 trap
erts: Implement fragmentation of distrubution messages
erts: Expand distribution protocol documentation
erts: Move reason in dist messages to payload
erts: Remove a copy of distribution data payload
erts: Yield later during process exit and allow free procs to run
erts: Refactor rbt _yielding to use reductions
erts: Limit binary printout for %.XT in erts_print
|
|
|
|
|
|
The special creation of 0 is used by internally created externals,
such as when list_to_pid is called. This creation should compare
equal to all externals creations of that external. If it does not
we can end up in very strange scenarios. For instance:
> P = spawn(OtherNode, fun() -> die end).
<8303.60.0>
> link(<8303.60.0>).
true
> flush().
ok
OTP-15613
|
|
|
|
The reason in EXIT and DOWN may be arbitrarily large,
so we yield and allow other processes to execute while
encoding and sending the signals over the distribution.
|
|
|
|
This commit removed the general send context (which was used
very little anyways) and only uses the distributed send context.
This will make it easier to use the dist API at the cost of
a little bit more code for the local send.
|
|
|
|
OTP-15612
|
|
|
|
|
|
The dist messages EXIT, EXIT2 and MONITOR_DOWN have been
updated with new versions that send the reason term as
part of the payload of the message instead of as part
of the control message.
This allows the decode of the reason to be done by the
receiving process instead of the dist entry which in turn
makes it possible for multiple decodes to be done in
parallel.
This change is done in order to make it easier to fragment
the potentially large payload of EXIT, EXIT2 and MONITOR_DOWN
into multiple distribution messages.
OTP-15611
|
|
Before this change the inet driver was in list mode and
thus the data from it had to be copied when received by
the dist entry. This change puts the tcp port in binary mode
and makes the any refc binary created by it be used all the way
to the process where it is decoded.
Thus eliminating one copy of the entire message payload.
|
|
OTP-15610
|
|
fix broken html link
|
|
|
|
maint
* sverker/erts/term_to_binary-reductions/ERL-774/OTP-15514:
erts: Consume reductions for strings in term_to_binary
erts: Reduce number of list traversals in term_to_binary
|
|
Cost per string byte,
but we still don't yield mid-string.
|
|
|
|
* sverker/enif_consume_timeslice-dirty-nop/OTP-15604:
erts: Make enif_consume_timeslice no-op on dirty sched
|
|
as a macro wrappper around enif_compare
|
|
|
|
|
|
for enif_send and enif_select_read|write.
|
|
|
|
* sverker/heart-nice-exit/OTP-15599:
erts: Avoid heart killing a nicely exiting emulator
|
|
|
|
The macro command was added quite recently and far from
all of our testmachines have this command
|
|
|
|
|
|
* lukas/erts/fix-exit_status-netbsd/OTP-15558:
Fix EV_DISPATCH detection on NetBSD
|
|
* maint:
Updated OTP version
Prepare release
|
|
* maint-21:
Updated OTP version
Prepare release
|
|
by patching list length when we reach end of list.
And remove unnecessary traversals in is_string and is_external_string
beyond the max length for STRING_EXT.
|
|
|
|
Conflicts:
erts/preloaded/ebin/prim_inet.beam
|
|
into maint
* raimo/erts/gen_tcp-listen-linger-slow/ERIERL-303/OTP-14728:
Check empty_out_q at close also for linger
Conflicts:
erts/preloaded/ebin/prim_inet.beam
|
|
bjorng/bjorn/erts/revert-optional-tuple-calls/OTP-15581
Remove support for optional tuple calls
|
|
* maint:
Add persistent_term:get(Key, DefaultValue)
Make dialyzer faster for left-associative andalso/orelse expressions
|
|
bjorng/bjorn/erts/persistent_term-default/ERL-843/OTP-15576
Add persistent_term:get(Key, DefaultValue)
|
|
Symptom:
Heart kills exiting emulator before is has flushed all ports
and with HEART_KILL_SIGNAL=SIGABRT it may also produce
unnecessary core dumps from doing init:reboot() for example.
Problem:
Heart port is closed together with all the others in handle_reap_ports()
which is detected by heart OS process.
Solution 1:
Leave the heart port alone in handle_reap_ports() and let it be closed
by OS when emulator exists. It doesn't need to be flushed anyway.
Solution 2:
When heart OS process gets EOF on connection let it wait max 5 seconds
for emulator process to self terminate before trying to kill it.
|
|
|
|
Fix bug in binary:encode_unsigned causing a read of uninitialized memory
|
|
* maint:
Updated OTP version
Prepare release
|
|
* maint-20:
Updated OTP version
Prepare release
|
|
|
|
into maint-20
* john/erts/spectre-configure-flag-otp_20/OTP-15430/ERIERL-237:
Allow disabling retpoline in interpreter loop
Add a ./configure flag for spectre mitigation
|
|
This reverts commit 87da7b5be69de01e65df566c6e35064381d1144d.
|