aboutsummaryrefslogtreecommitdiffstats
path: root/lib/sasl
AgeCommit message (Collapse)Author
2018-03-21Implementation of true asynchronous signaling between processesRickard Green
Communication between Erlang processes has conceptually always been performed through asynchronous signaling. The runtime system implementation has however previously preformed most operation synchronously. In a system with only one true thread of execution, this is not problematic (often the opposite). In a system with multiple threads of execution (as current runtime system implementation with SMP support) it becomes problematic. This since it often involves locking of structures when updating them which in turn cause resource contention. Utilizing true asynchronous communication often avoids these resource contention issues. The case that triggered this change was contention on the link lock due to frequent updates of the monitor trees during communication with a frequently used server. The signal order delivery guarantees of the language makes it hard to change the implementation of only some signals to use true asynchronous signaling. Therefore the implementations of (almost) all signals have been changed. Currently the following signals have been implemented as true asynchronous signals: - Message signals - Exit signals - Monitor signals - Demonitor signals - Monitor triggered signals (DOWN, CHANGE, etc) - Link signals - Unlink signals - Group leader signals All of the above already defined as asynchronous signals in the language. The implementation of messages signals was quite asynchronous to begin with, but had quite strict delivery constraints due to the ordering guarantees of signals between a pair of processes. The previously used message queue partitioned into two halves has been replaced by a more general signal queue partitioned into three parts that service all kinds of signals. More details regarding the signal queue can be found in comments in the erl_proc_sig_queue.h file. The monitor and link implementations have also been completely replaced in order to fit the new asynchronous signaling implementation as good as possible. More details regarding the new monitor and link implementations can be found in the erl_monitor_link.h file.
2018-03-05Merge pull request #1560 from tsloughter/no_warn_sysconfigSiri Hansen
Include sys.config.src in release tar file OTP-14950
2018-02-06sasl: Do not call erlang:get_stacktrace()Hans Bolinder
2018-01-14support sys.config.src in place of sys.config that is not verifiedTristan Sloughter
2017-12-19Merge branch 'dgud/kernel/refc_sched_wall_time/OTP-11694'Dan Gudmundsson
* dgud/kernel/refc_sched_wall_time/OTP-11694: test: spawn scheduler_wall_time flag holder Turn on scheduler_wall_time in an alive process Redirect system_flag(scheduler_wall_time,_) to kernel_refc kernel: add a resource reference counter
2017-12-19test: spawn scheduler_wall_time flag holderDan Gudmundsson
Can not start via rpc any more without spawning a keep alive process, since it will stop collecting when process dies.
2017-12-13Merge branch 'maint'Henrik Nord
2017-12-08Update release notesErlang/OTP
2017-12-08Update version numbersErlang/OTP
2017-11-30Add a mutable binary buffer type (prim_buffer)John Högberg
2017-11-20Merge branch 'maint'Lukas Larsson
2017-11-20Merge branch 'lukas/docs/xmllint_fixes/OTP-14721' into maintLukas Larsson
* lukas/docs/xmllint_fixes/OTP-14721: ssl/ssh: Remove/ignore unused XML_FILES doc files Refactor xmllint check and make it fail on failure Add toplevel xmllint make target Conflicts: lib/crypto/doc/src/Makefile
2017-11-15Merge pull request #1602 from sirihansen/siri/supervisor/store-children-in-mapSiri Hansen
Refactor supervisor, and store children in a map instead of a list OTP-14586
2017-11-09[supervisor] Store children in map instead of listSiri Hansen
2017-10-31Refactor xmllint check and make it fail on failureLukas Larsson
This commit also adds a check to see that all files that are part of an xi:include also have part of XML_FILES and vice versa. It also fixes any applications where this was not true.
2017-10-23Merge branch 'maint'Siri Hansen
2017-10-17[rb] Don't fail for unexpected type of reportSiri Hansen
rb would fail to show an error_logger report which was not a list. This is now corrected and any term is allowed (as specified in the error_logger reference manual).
2017-10-17Merge branch 'dgud/dot_erlang/OTP-14439'Dan Gudmundsson
* dgud/dot_erlang/OTP-14439: fixup! Do not load .erlang from current dir erlc: Do not load .erlang escript: Do not load .erlang dialyzer: Do not load .erlang reltool: Add no_dot_erlang bootfiles Enable usage of no_dot_erlang in bootstrap Do not load .erlang from current dir
2017-10-10Merge branch 'maint'Lars Thorsen
2017-10-10Merge branch 'lars/doc-cleanup/OTP-14475' into maintLars Thorsen
* lars/doc-cleanup/OTP-14475: [edoc] Remove unused module otpsgml_layout.erl Remove unused files from the documentation build
2017-09-28Remove unused files from the documentation buildLars Thorsen
2017-09-27Do not load .erlang from current dirDan Gudmundsson
It may be confusing that "hidden" .erlang is loaded from the current working directory. Use c:erlangrc([Dir1,..]) to search and load .erlang from other places than "$HOME/.erlang". Implies that c:erlangrc() needs to be documented.
2017-09-26Merge branch 'maint'Henrik Nord
2017-09-22Update release notesErlang/OTP
2017-09-22Update version numbersErlang/OTP
2017-09-20Merge branch 'maint'Dan Gudmundsson
* maint: erts, stdlib: Fix xmllint warning Update runtime deps to depend on new stdlib functionality
2017-09-20Merge branch 'dgud/update-runtime-deps' into maintDan Gudmundsson
* dgud/update-runtime-deps: Update runtime deps to depend on new stdlib functionality
2017-09-19Update runtime deps to depend on new stdlib functionalityDan Gudmundsson
~tw and new string functions are new since OTP-20 (stdlib-3.4)
2017-09-18Update appup in stdlib and sasl for OTP-20.1Siri Hansen
2017-09-15Merge branch 'siri/string-new-api'Siri Hansen
* siri/string-new-api: (28 commits) hipe (test): Do not use deprecated functions in string(3) dialyzer (test): Do not use deprecated functions in string(3) eunit (test): Do not use deprecated functions in string(3) system (test): Do not use deprecated functions in string(3) system (test): Do not use deprecated functions in string(3) mnesia (test): Do not use deprecated functions in string(3) Deprecate old string functions observer: Do not use deprecated functions in string(3) common_test: Do not use deprecated functions in string(3) eldap: Do not use deprecated functions in string(3) et: Do not use deprecated functions in string(3) os_mon: Do not use deprecated functions in string(3) debugger: Do not use deprecated functions in string(3) runtime_tools: Do not use deprecated functions in string(3) asn1: Do not use deprecated functions in string(3) compiler: Do not use deprecated functions in string(3) sasl: Do not use deprecated functions in string(3) reltool: Do not use deprecated functions in string(3) kernel: Do not use deprecated functions in string(3) hipe: Do not use deprecated functions in string(3) ... Conflicts: lib/eunit/src/eunit_lib.erl lib/observer/src/crashdump_viewer.erl lib/reltool/src/reltool_target.erl
2017-09-15sasl: Do not use deprecated functions in string(3)Hans Bolinder
2017-09-07Merge branch 'maint'Siri Hansen
2017-09-05sasl: set encoding of SASL report logSiri Hansen
This can now be explicitly set by the 'sasl_error_logger' configuration parameter, but if not set, the default encoding is now utf8. When printing to this log, the Unicode translation modifier, t, might be used in the format string.
2017-09-05sasl: Improve handling of UnicodeHans Bolinder
There is more to do.
2017-07-07Merge branch 'maint'Siri Hansen
2017-07-07[sasl] Improve handling of unicode strings and atomsSiri Hansen
2017-07-07Merge branch 'siri/appups-21'Siri Hansen
* siri/appups-21: Update sasl/test/test_lib.hrl with recent versions of kernel and stdlib Update appups in kernel, stdlib, and sasl for OTP-21.0
2017-07-03Update sasl/test/test_lib.hrl with recent versions of kernel and stdlibSiri Hansen
"Old" versions are now taken from OTP-20.0, i.e. one major revision back from OTP-21.
2017-06-29Update appups in kernel, stdlib, and sasl for OTP-21.0Siri Hansen
2017-06-22[sasl] Remove out-dated modules si and si_sasl_suppSiri Hansen
2017-06-21Prepare releaseErlang/OTP
2017-06-19Update copyright yearHans Nilsson
2017-06-16[sasl] Improve handling of unicode in rbSiri Hansen
2017-06-16[sasl] Improve handling of unicode atomsSiri Hansen
2017-06-14Update copyright yearHans Nilsson
2017-05-30Update sasl_report_SUITE to accept new size of sasl.logSiri Hansen
PR-1448 caused sasl_report_SUITE:gen_server_crash to produce a slightly bigger sasl.log. This is because the Reason used in the crash report is changed from {ExitReason,Stacktrace} to ExitReason only, where ExitReason={badmatch,BigGbSet}. The term is written with a depth limit of 30, and when removing the top tuple, a new level of the gb_set is exposed. This level contains more data than the removed Stacktrace, and thus the resulting log gets a bit bigger than before.
2017-05-18kernel: Introcude error_logger:get_format_depth()Hans Bolinder
2017-05-05Revert "Prepare release"Raimo Niskanen
This reverts commit dc57404252c47520f352834ad9be45ad684f96c9.
2017-05-04Prepare releaseErlang/OTP
2017-05-04Update copyright yearRaimo Niskanen