aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2016-04-05Remove ?line macrosBjörn-Egil Dahlberg
2016-04-04Merge tag 'OTP-18.3.1'Henrik Nord
=== OTP-18.3.1 === Changed Applications: - erts-7.3.1 - inets-6.2.1 - mnesia-4.13.4 Unchanged Applications: - asn1-4.0.2 - common_test-1.12 - compiler-6.0.3 - cosEvent-2.2 - cosEventDomain-1.2 - cosFileTransfer-1.2 - cosNotification-1.2.1 - cosProperty-1.2 - cosTime-1.2.1 - cosTransactions-1.3.1 - crypto-3.6.3 - debugger-4.1.2 - dialyzer-2.9 - diameter-1.11.2 - edoc-0.7.18 - eldap-1.2.1 - erl_docgen-0.4.2 - erl_interface-3.8.2 - et-1.5.1 - eunit-2.2.13 - gs-1.6 - hipe-3.15 - ic-4.4 - jinterface-1.6.1 - kernel-4.2 - megaco-3.18 - observer-2.1.2 - odbc-2.11.1 - orber-3.8.1 - os_mon-2.4 - ose-1.1 - otp_mibs-1.1 - parsetools-2.1.1 - percept-0.8.11 - public_key-1.1.1 - reltool-0.7 - runtime_tools-1.9.3 - sasl-2.7 - snmp-5.2.2 - ssh-4.2.2 - ssl-7.3 - stdlib-2.8 - syntax_tools-1.7 - test_server-3.10 - tools-2.8.3 - typer-0.9.10 - webtool-0.9.1 - wx-1.6.1 - xmerl-1.3.10 Conflicts: OTP_VERSION erts/emulator/test/save_calls_SUITE.erl erts/vsn.mk
2016-04-04Handle multi-giga byte writes to filesBjörn Gustavsson
Test cases that write 4Gb to a file at once would fail on OS X and FreeBSD. By running a simple test program on OS X (El Capitan 10.11.4/Darwin 15.4.0), I found that writev() can handle more than 4Gb of data, while write() only can handle less than 2Gb. (Note that efile_drv.c will use write() if there is only one element in the io vector, and writev() if there is more than one.) It is tempting to attempt to piggy-back on the existing mechanism for segmenting write operations in efile_drv.c, but because of the complex code I find it too dangerous, both from a correctness and performance perspective. Instead do the change in unix_efile.c, which is considerably simpler.
2016-04-04Merge branch 'bjorn/erts/clang-opt'Björn Gustavsson
* bjorn/erts/clang-opt: Fix unsafe transformation of apply/3 with fixed arguments
2016-04-04Merge branch 'egil/erts/fix-flatmap-get/OTP-13459'Björn-Egil Dahlberg
* egil/erts/fix-flatmap-get/OTP-13459: erts: Don't search for non-existing Map keys twice
2016-04-01Prepare releaseErlang/OTP
2016-04-01Merge branch 'sverker/erts/trap_exit-race/OTP-13452' into maint-18Erlang/OTP
* sverker/erts/trap_exit-race/OTP-13452: erts: Fix race for process_flag(trap_exit,true)
2016-04-01Merge branch 'rickard/proc-free-fix/OTP-13446' into maint-18Erlang/OTP
* rickard/proc-free-fix/OTP-13446: Fix bad refc management of process struct # Conflicts: # erts/emulator/beam/erl_process.c
2016-04-01Merge branch 'rickard/port-sig-dropped-fix/OTP-13424' into maint-18Erlang/OTP
* rickard/port-sig-dropped-fix/OTP-13424: Fix implementation of dropped signal to port
2016-04-01Merge branch 'rickard/ethr-event-futex-wait-timeout/OTP-13420' into maint-18Erlang/OTP
* rickard/ethr-event-futex-wait-timeout/OTP-13420: Fix premature timeouts for ethread events on Linux
2016-04-01Merge branch 'rickard/last_calls/OTP-13418' into maint-18Erlang/OTP
* rickard/last_calls/OTP-13418: Unbreak process_info(Pid,last_calls)
2016-04-01erts: Fix race for process_flag(trap_exit,true)Sverker Eriksson
and a concurrent exit signal. We now actually guarantee that the process will not die from exit signal *after* the call to process_flag(trap_exit,true) has returned. The race is narrow and probably quite hard to observe even if you manage to provoke it. Has only been confirmed with the help of return trace and a sleep in send_exit_signal(). Solution: Seize status lock to prevent send_exit_signal() from reading an old status (without TRAP_EXIT) and then writing PENDING_EXIT after TRAP_EXIT has been set by process_flag_2().
2016-04-01erts: Don't search for non-existing Map keys twiceBjörn-Egil Dahlberg
* For maps:get/2,3 and maps:find/2, searching for an immediate key, e.g. an atom, the search was performed twice if the key did not exist in the map.
2016-04-01Merge branch 'rickard/proc-free-fix/OTP-13446'Rickard Green
* rickard/proc-free-fix/OTP-13446: Fix bad refc management of process struct Conflicts: erts/emulator/beam/erl_process.c
2016-03-31Refactor time_t in efile_drvBjörn-Egil Dahlberg
2016-03-31Fix bad refc management of process structRickard Green
2016-03-31Fix unsafe transformation of apply/3 with fixed argumentsBjörn Gustavsson
62473daf introduced an unsafe optimization in the loader. See the comments in the test case for an explanation of the problem.
2016-03-30Fix scheduling of system tasksRickard Green
2016-03-30erts: Fix "hanging" VM caused by exiting tty_sl driverSverker Eriksson
Bug introduced on master in a31eab5469b7740d.
2016-03-29Don't send unasked for systemd notificationsAlexey Lebedeff
Suppose we have some erlang system that uses systemd unit with Type=notify - so this should send startup confirmation itself. But if systemd-enabled epmd will be started as a first step of that system startup, empd startup confirmation will be misinterpeted by systemd. And our erlang service will be considered 'ready' to early. Also this will interefere with systemd MAINPID detection: systemd will be monitoring `epmd` process instead of `beam` one. For example, rabbitmq works around this issue by starting epmd using separate short-lived beam process, with NOTIFY_SOCKET environment variable reset - only in this way we could be sure that epmd will not interfere with rabbit startup sequence. This patch disables indiscriminate confirmation sending, and does it only when it was explicitly asked to do so.
2016-03-29Merge branch 'lukas/erts/etp-bigendian-pid-fix'Lukas Larsson
* lukas/erts/etp-bigendian-pid-fix: erts: Fix etp pid print on big endian
2016-03-29Merge branch 'lukas/erts/enif_trace_functions/OTP-13442'Lukas Larsson
* lukas/erts/enif_trace_functions/OTP-13442: erts: Fix bug in enif_send erts: Fix windows nif port tests erts: Fix bug in enif_term_to_binary erts: Remove printout when dec_term fails in DEBUG erts: Polish erl_nif docs erts: Improve enif_binary_to_term erts: Add enif_port_command erts: Add enif_term_to_binary and enif_binary_to_term erts: Add enif_is_process/port_alive erts: Add enif_cpu/now_time and enif_make_unique_integer
2016-03-29erts: Fix bug in enif_sendSverker Eriksson
Let cache_env() set env->heap_frag to same as MBUF(p) as it is in any other case.
2016-03-29erts: Fix windows nif port testsLukas Larsson
2016-03-29erts: Fix bug in enif_term_to_binarySverker Eriksson
Wait until after dec_term and factory_close to do cache_env(), otherwise we will cache the wrong state.
2016-03-29erts: Remove printout when dec_term fails in DEBUGSverker Eriksson
2016-03-29erts: Polish erl_nif docsSverker Eriksson
2016-03-29erts: Improve enif_binary_to_termSverker Eriksson
* Accept a raw data buffer instead of ErlNifBinary * Accept option ERL_NIF_BIN2TERM_SAFE * Return number of read bytes
2016-03-29erts: Add enif_port_commandLukas Larsson
2016-03-29erts: Add enif_term_to_binary and enif_binary_to_termLukas Larsson
2016-03-29erts: Add enif_is_process/port_aliveLukas Larsson
2016-03-29erts: Add enif_cpu/now_time and enif_make_unique_integerLukas Larsson
2016-03-29Merge branch 'rickard/improve-psd/OTP-13428'Rickard Green
* rickard/improve-psd/OTP-13428: Improve process/port specific data management
2016-03-29Merge branch 'rickard/delayed-gc-fix'Rickard Green
* rickard/delayed-gc-fix: Allow delayed gc while scheduled out
2016-03-29Merge branch 'rickard/port-sig-dropped-fix/OTP-13424'Rickard Green
* rickard/port-sig-dropped-fix/OTP-13424: Fix implementation of dropped signal to port
2016-03-29Merge branch 'lukas/erts/inline_tagvaldef/OTP-13440'Lukas Larsson
* lukas/erts/inline_tagvaldef/OTP-13440: erts: inline tag_val_def
2016-03-29erts: inline tag_val_defLukas Larsson
The tag_val_def function was called and multiple switch statements had to be traversed in term.c, and then a big switch in the calling code to branch on the term types. By inlining the switches are merged by the compiler and a lot fewer branches have to be taken. Benchmarks show that this increases performance of enc_term by as much as 10%.
2016-03-29Merge branch 'lukas/erts/fix_pthread_setname_osx/OTP-13439'Lukas Larsson
* lukas/erts/fix_pthread_setname_osx/OTP-13439: erts: Fix pthread_setname_np warning on osx
2016-03-29Merge branch 'lukas/erts/low_write_freq_darwin/OTP-12345'Lukas Larsson
* lukas/erts/low_write_freq_darwin/OTP-12345: erts: Fix LOW_WRITE section for non llvm os x compilation
2016-03-29erts: Fix incorrect non-smp debug assertLukas Larsson
2016-03-24Improve process/port specific data managementRickard Green
2016-03-24erts: Fix etp pid print on big endianLukas Larsson
2016-03-24erts: std_alloc is not thread safe on non-smpHenrik Nord
2016-03-21Merge branch 'sverk/wait_for_deallocations'Sverker Eriksson
2016-03-21Merge branch 'bjorn/optimize-start-up/OTP-13368'Björn Gustavsson
* bjorn/optimize-start-up/OTP-13368: Update preloaded modules init: Load modules in parallel using the new loader BIFs systools_make: Add commonly used modules to mandatory_modules/0 compile: Pre-load compiler modules when invoked from 'erlc'
2016-03-21Merge branch 'bjorn/macosx-configure'Björn Gustavsson
* bjorn/macosx-configure: configure: Remove obsolete --enable-darwin-* options
2016-03-21Merge branch 'egil/fix-ttsl_drv-log'Björn-Egil Dahlberg
* egil/fix-ttsl_drv-log: Fix ttsl_drv logging without TERMCAP
2016-03-18Fix implementation of dropped signal to portRickard Green
2016-03-18Merge branch 'lukas/erts/scheduler_SUITE_compile_win/OTP-13428'Lukas Larsson
* lukas/erts/scheduler_SUITE_compile_win/OTP-13428: Fix dirty scheduler tc on windows
2016-03-18Merge branch 'lukas/erts/fix-vsyslog-freebsd/OTP-13427'Lukas Larsson
* lukas/erts/fix-vsyslog-freebsd/OTP-13427: erts: Fix run_erl syslog prototypes for freebsd Conflicts: erts/etc/unix/run_erl.c