Age | Commit message (Collapse) | Author |
|
The least bad behavior I think:
* We cannot return 'noconnect' as caller might already have enqueued
monitor/link that never triggers.
* We cannot block waiting for connection as that can ruin latency
when 'noconnect' is used to avoid blocking auto-connect
(see gen_server and gen_statem).
But there might be users getting more cases of bad latency
waiting for a pendig connection, instead of a fast 'noconnect'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Removed distribution_SUITE:applied_monitor_node
as it seems to test apply of trapping BIF
and monitor_node does not trap anymore.
|
|
|
|
Break out from 'flags' into new dedicated 'connection_id'
just for simplicity.
Also changed flags to low bits
and that affected enif_binary_to_term.
|
|
as a preparation for async auto-connect requests.
|
|
and remove ugly encoding fallback as {fun, ...}
DFLAGS_NEW_FUN_TAGS has been supported by vm/erl_interface/jinterface
since R13 or even older.
Renamed test case obsolete_funs to term2bin_tuple_fallbacks
and removed test for {fun,...} fallback
and added missing test for bitstring fallback {Binary, Bits}.
|
|
Runs much faster now.
|
|
for set/get_internal_state calls.
|
|
|
|
|
|
Distribution flag DFLAG_UTF8_ATOMS is supported since R16
and mandatory since 20.0.
|
|
|
|
to handle "lookup without refc++" correctly
which was introduced in 4dcb2ae7810a507b701a30072b2f514cab7ebbdb.
When decrementing refc to zero (in try_delete or prepare_try_delete)
we must always wait thread progress to make sure no thread has done
lookup without refc++ and is just about to do refc++ and thereby revive
the DistEntry. That is, we wait for a potential other thread to either
do refc++ or drop its pointer to the DistEntry.
And if that other thread does refc++ (in erts_ref_dist_entry)
it must also do the extra refc++ for the scheduled pending delete.
|
|
|
|
* maint:
edoc: The map type is denoted map()
|
|
* hasse/edoc/fix_map_type/OTP-14777:
edoc: The map type is denoted map()
|
|
Refactor supervisor, and store children in a map instead of a list
OTP-14586
|
|
Add 'used' option for binary_to_term/2
|
|
HiPE: Support for literal tag, tests and bugfixes
|
|
|
|
|
|
* hans/ssh/dont_remove_trailing_ws_18/OTP-14763:
ssh: Unicode encoding fix
ssh: testcases for space trailing Hello msg
ssh: Don't remove trailing WS in Hello msg
|
|
* hans/fix_build_env/OTP-14765:
Remove unused test include file from test suites
eldap: Repair Makefile
|
|
* rickard/timer-sid-bug/OTP-14548:
Fix scheduler id field in timers
|
|
'john/compiler/fail-labels-in-blocks-otp-18/ERIERL-48/OTP-14522' into maint-18
* john/compiler/fail-labels-in-blocks-otp-18/ERIERL-48/OTP-14522:
compiler: Fix live regs update on allocate in validator
Take fail labels into account when determining liveness in block ops
|
|
maint-18
* sverker/r16/binary_to_atom-utf8-crash/ERL-474/OTP-14590:
erts: Fix crash in binary_to_atom/term for invalid utf8
|
|
* sverker/big-bxor-bug/ERL-450/OTP-14514:
erts: Fix bug in bxor of a big negative number
|
|
* sverker/prealloc-race-bug/OTP-14491:
erts: Fix bug in quick alloc
|
|
Conflicts:
lib/ssh/src/ssh_connection_handler.erl
|
|
|
|
|
|
|
|
The map type was erroneously displayed as "#{}", the empty map type.
|
|
|
|
* maint:
dialyzer: Display error messages without call stack
|
|
* hasse/dialyzer/fix_crash_msg/OTP-14742:
dialyzer: Display error messages without call stack
|
|
When a ref is created before performing a receive that will only
receive message containing that ref, there is a compiler optimization
to avoid scanning messages that can't possible contain the newly
created ref.
Magnus Lång pointed out that the implementation of the optimization
is flawed. Exceptions or recursive calls could cause the receive
operation to scan the receive queue from a position beyond the expected
message (that is, the message containing the ref would never be
matched out). See the receive_opt_exception/1 and receive_opt_recursion/1
test cases in receive_SUITE.
It turns out that we can simplify the implementation of the
optimization while fixing the bug (suggested by Magnus Lång). We
actually don't need the c_p->msg.mark field. It is enough to have
c_p->msg.saved_pos; if it is non-zero, it is a valid position in the
message qeueue. All we need to do is to ensure that we clear
c_p->msg.saved_pos when a receive is exited normally or abnormally.
We can clear c_p->msg.saved_pos in JOIN_MESSAGE(), since it is called
both when leaving a receive because a message matched and because there
was a timeout and the 'after' clause was executed. In addition, we
need to clear c_p->msg.saved_pos when an exception is caught.
https://bugs.erlang.org/browse/ERL-511
|
|
(cherry picked from commit 5a772d417173dee881e9c80113bbba441c939a83)
|
|
Add internal documentation for the beam_makeops script
OTP-14626
|
|
|
|
* maint:
Recognize 'deterministic' when given in a -compile() attribute
Conflicts:
lib/compiler/src/beam_asm.erl
|
|
* bjorn/compiler/fix-deterministic-attribute/ERL-498:
Recognize 'deterministic' when given in a -compile() attribute
OTP-14773
|
|
|
|
* ingela/ssl/doc-link-fix:
ssl: Fix broken link in doc
|