Age | Commit message (Collapse) | Author |
|
|
|
Also fix and document the broken +We option.
|
|
This reverts commit e09dd66dc4d89c62ddfd8c19791f9678d5d787c6.
|
|
Given some pointer *x, calling sizeof(x) will give us
the size of the pointer (4/8 bytes) not the size fo the
underlying dereferenced structure. Use coccinelle to
search for these occurrences in the source code, and
correct them one by one. In the case of
erl_node_tables.c, the erts_snprintf() calls used a
much too small buffer.
- run_erl.c: Use the size of the signal type, not
its pointer.
- erl_node_tables.c: Use the size of the _BUFFER in
erts_snprintf() to make sure we can use the full space.
|
|
If the driver queue is empty, or the user is requesting a 'read'
shutdown, then the shutdown() syscall is performed synchronously, as
per the old version of shutdown/2.
However, if the user is requesting a 'write' or 'read_write' shutdown,
and there is data in the driver queue for the socket, then the
shutdown() syscall is delayed and handled asynchronously when the
driver queue is written out.
This version of shutdown solves a number of issues with the old
version. The two main solutions it offers are:
* It doesn't block when the TCP peer is idle or slow. This is the
expected behaviour when shutdown() is called: the caller needs
to be able to continue reading from the socket, not be prevented
from doing so.
* It doesn't truncate the output. The current version of
gen_tcp:shutdown/2 will truncate any outbound data in the driver
queue after about 10 seconds if the TCP peer is idle of slow. Worse
yet, it doesn't even inform anyone that the data has been
truncated: 'ok' is returned to the caller; and a FIN rather than
an RST is sent to the TCP peer.
For a detailed description of all the problems with the old version
of shutdown, please see the EEP Light that was written to justify
this patch.
|
|
|
|
|
|
* rickard/timer-optimization/OTP-12650:
Timer fixes, documentation, and test cases
Conflicts:
erts/emulator/beam/erl_hl_timer.c
|
|
|
|
* jv/18/emulator-send-to-error_logger/OTP-12735:
erts: Fix erts_send_error_term_to_logger memory leak
Send format and args on process exit to error_logger
Add erts_send_error_term_to_logger
|
|
|
|
* egil/erts/high_accuracy_sleep/OTP-12236:
erts: Add high accuracy poll timeouts
|
|
Previously, the emulator would generate a whole string
with values and call the error_logger passing "~s~n".
This commit changes it to a format string containing ~p
with the respective values as arguments.
|
|
This function allows us to send format and args to the
logger which can then be formatted and customized from
Erlang land.
|
|
* egil/fix-maps-copy-shallow:
erts: Make hashmap_get halfword safe
erts: Fix ETS db_has_variable check for large Maps
stdlib: Strengthen ETS Maps tests
erts: Fix copy shallow for large Maps
stdlib: Strengthen ETS Maps tests
erts: ETS ordered_set cannot use it's optimization with Maps
stdlib: Strengthen ETS Maps tests
stdlib: Refactor away ?line macro
|
|
* aw/native-cpu_sup/OTP-12730:
erts: Fix configure.in
os_mon: rename send() to sendi() in cpu_sup.c
os_mon: cpu_sup should use native sysctl/libkvm calls on BSD
|
|
* egil/fix-maps-erts_debug-size:
erts: Fix erts_debug:size/1 for large Maps
erts: Simple test of erts_debug:size/1 of Maps
|
|
* sg2342/fix_freebsd_sendfile/OTP-12720:
Fix FreeBSD sendfile
|
|
* sverk/erts-fp-exception-fixes/OTP-12717:
erts: Disable float exceptions for clang/llvm
erts: Increase buffer in erts_fp_check_init_error
|
|
|
|
|
|
* rickard/timer-optimization/OTP-12650:
Optimized timer implementation
Reusable red-black tree implementation
Conflicts:
erts/emulator/beam/erl_bif_timer.c
|
|
* rickard/time-improvement/OTP-11997:
Allow execution of estone suite on pre OTP-18 systems
Add parallel time monotonicity test-case
Replace usage of erlang:now() in line-tracing
Replace erlang:now() usage in emulator suite
Replace erlang:now() usage in system suite
Misc time improvements
|
|
|
|
|
|
* richcarl/md5-fixes:
Set module_info md5 for native modules properly
Add module_info entry for native code
Gracefully handle empty md5 field in module_info
Remove 'imports' key from spec of get_module_info()
|
|
|
|
* egil/fix-pos-zero-opt:
erts: Don't let the compiler optimize pos. zero fix
|
|
Use the md5 of the native code chunk instead of the Beam code md5.
|
|
|
|
|
|
|
|
* henrik/update-javaversion:
update java version
OTP-12715
|
|
|
|
There is no need to take special care of Maps at all since header_arity(hdr)
will take care of the normal case via its Map handling.
|
|
The optimization cannot be used due to that the pattern cannot be ordered.
|
|
|
|
|
|
|
|
|
|
|
|
- Possibility to chose different clock sources
- Improved mach clock usage
- Improved linux clock_gettime() usage
- ...
|
|
Change erts/configure.in to force-disable FP exceptions if
the VM is compiled by clang/llvm. clang/llvm generates FP
code which does not work with FP exceptions (whether unmasked
as used in the Erlang VM, or masked followed by tests of
which are signalled). This is a known long-standing problem.
|
|
The current size is too small for 64-bit machines,
causing messages to be truncated and making debugging
more difficult.
|
|
|
|
* sverk/hipe_match_wbin/OTP-12667:
erts: Add debug assertions for match state sanity
hipe: Add test for matching of writable binary
erts,hipe: Optimize away calls to emasculate_binary
erts,hipe: Fix bug in binary matching of writable binary
Conflicts:
erts/emulator/hipe/hipe_bif0.c
|
|
Conflicts:
OTP_VERSION
erts/vsn.mk
lib/test_server/src/erl2html2.erl
|
|
|
|
* egil/fix-tmp-alloc-fd-async/OTP-12710:
erts: Use a lockable allocator on 'sys_write_buf'
|
|
Don't repeat cpu_sup in os_mon_programs - some OS gets confused, i.e. illumos.
|