aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2010-02-10Add count_children/1 to supervisor.erl to determine the number ofJay Nelson
children being managed without the memory impact of which_children/1 The function which_children/1 returns a list of the child processes currently being supervised, but it has the penalty of creating a new list thereby consuming more memory. In low memory situations it is often desirable to know which supervisor may have generated many processes, but the act of discovering the culprit should not cause the node to crash (or worse a different node if the kernel kills one randomly). The new function count_children/1 can give an indication of which supervisor is taxing resources the most without adding to the burden. Rather than creating a new list, it walks the supervisor's internal children structure using an accumulator function so that any used memory can be incrementally collected yet the resulting count can still be obtained. The return result of count_children/1 is a property list of counts containing: - {specs, Total_Num_Child_Specs} - {active, Num_Active_Child_Processes_Of_Supervisor_Or_Worker_Type} - {supervisors, Num_Supervisor_Type_Children_Including_Dead_Processes} - {workers, Num_Worker_Type_Children_Including_Dead_Processes} This patch was made in response to mailing list discussions of the problem diagnosing heavily taxed production systems. I cannot find the original request, but http://www.erlang.org/cgi-bin/ezmlm-cgi/4/35060 is my original post of the patch.
2010-02-10Merge branch 'egil/lcnt' into ccase/r13b04_devErlang/OTP
* egil/lcnt: Add test suite for lcnt in tools Add lcnt:rt_opt/1 bindings to erts_debug Add runtime option to enable/disable lcnt stats Add auto width on string output Add lcnt documentation Add lock profiling tool OTP-8424 Add lock profiling tool. The Lock profiling tool, lcnt, can make use of the internal lock statistics when the runtime system is built with this feature enabled. This provides a mechanism to examine potential lock bottlenecks within the runtime itself. - Add erts_debug:lock_counters({copy_save, bool()}). This option enables or disables statistics saving for destroyed processes and ets-tables. Enabling this might consume a lot of memory. - Add id-numbering for lock classes which is otherwise undefined.
2010-02-10OTP-8057 Removed spurious documentation files.Håkan Mattsson
2010-02-10Removed spurious documentation filesHåkan Mattsson
2010-02-10Merge branch 'ks/erl_lint' into ccase/r13b04_devErlang/OTP
* ks/erl_lint: erl_lint_SUITE: adjust failing test case Allow recursive types and check for undefined types OTP-8421: ks/erl_lint
2010-02-10Merge branch 'ks/compiler' into ccase/r13b04_devErlang/OTP
* ks/compiler: compiler: keep line numbers for attributes compiler Makefile: alphabetize module names compile.erl: eliminate compiler warning
2010-02-10Support the configure option --enable-native-libsKostis Sagonas
2010-02-10compiler: keep line numbers for attributesKostis Sagonas
In the future, we might want to generate warnings for attributes, referring to them with line numbers. sys_pre_expand used to replace line number for attributes with 0. Change sys_pre_expand to retain the real line number. v3_core used to throw away the line numbers. Change v3_core so that it retains the line numbers in annotations. While at it, do some tidying as suggested by tidier.
2010-02-10Merge branch 'egil/egd_render' into ccase/r13b04_devErlang/OTP
* egil/egd_render: Fix egd_render transparent to use float constants OTP-8425 Fix egd_render transparent to use float constants. The render engine has float guards to enhance beam code generation. However, the default case used integers which caused the engine to crash. This is now fixed.
2010-02-10Merge branch 'mp/hipe_unified_loader' into ccase/r13b04_devErlang/OTP
* mp/hipe_unified_loader: hipe_unified_loader: only block SMP scheduling when necessary
2010-02-10Merge branch 'rani/inet_gethostbyname_fixes' into ccase/r13b04_devErlang/OTP
* rani/inet_gethostbyname_fixes: inet_res_SUITE: testcase fixes for legacy DNS resolver (Solaris 8) inet_res: /etc/resolv.conf: use domain as default search list inet: delayed/avoided read of /etc/resolv.conf and /etc/hosts inet_gethost_native: workaround for empty result hostname on MacOS X inet_res_SUITE: testcase fix for empty domain name inet:gethostbyname improved to parse IP strings and look up own hostname OTP-8426 The resolver routines failed to look up the own node name as hostname, if the OS native resolver was erroneously configured, bug reported by Yogish Baliga, now fixed. The resolver routines now tries to parse the hostname as an IP string as most OS resolvers do, unless the native resolver is used. The DNS resolver inet_res and file resolver inet_hosts now do not read OS configuration files until they are needed. Since the native resolver is default, in most cases they are never needed. The DNS resolver's automatic updating of OS configuration file data (/etc/resolv.conf) now uses the 'domain' keyword as default search domain if there is no 'search' keyword.
2010-02-10compiler Makefile: alphabetize module namesKostis Sagonas
2010-02-10compile.erl: eliminate compiler warningKostis Sagonas
2010-02-09erl_lint_SUITE: adjust failing test caseBjörn Gustavsson
Errors are now reported slightly differently, so we'll need to adjust the test case.
2010-02-09Allow recursive types and check for undefined typesKostis Sagonas
Contains four kinds of changes: * Allows recursive types and type definitions to be in any order. * Because the checking is not performed from top to bottom, there is a separate pass which checks for undefined module-local types. * Behaviour callbacks which allow specs in them. * Clean up the code as suggested by tidier.
2010-02-09Fixing spec-file(s) bugs.Micael Karlberg
2010-02-09inet_res_SUITE: testcase fixes for legacy DNS resolver (Solaris 8)Raimo Niskanen
2010-02-09inet_res: /etc/resolv.conf: use domain as default search listRaimo Niskanen
When the search list option in /etc/resolv.conf was empty, the domain option was not used as default search domain. That has been fixed in this patch.
2010-02-09inet: delayed/avoided read of /etc/resolv.conf and /etc/hostsRaimo Niskanen
The 'file' and 'dns' lookup methods configuration files are now read and parsed at the time of the first lookup instead of at boot time when per default none of these lookup methods are used.
2010-02-09inet_gethost_native: workaround for empty result hostname on MacOS XRaimo Niskanen
On MacOS X the getaddrinfo function apparently can return a result without canonical hostname e.g when looking up a IPv6 address string as hostname. The receiving erlang code was not prepared for that and this patch does a workaround by using the search string as default value for canonical hostname.
2010-02-09inet_res_SUITE: testcase fix for empty domain nameRaimo Niskanen
2010-02-09inet:gethostbyname improved to parse IP strings and look up own hostnameRaimo Niskanen
Now inet:gethostbyname tries to parse the hostname as an IP string first if the 'native' lookup method is not used. One can also make the IP string parsing explicit using the new 'string' lookup method, or avoid it using the new pseudo lookup method 'nostring'. In R13B04 a bug was introduced when the gethostbyname code was rewritten, so if the native resolver was used and misconfigured to not be able to look up the own hostname, inet:gethostbyname also failed. This is now fixed.
2010-02-09hipe_unified_loader: only block SMP scheduling when necessaryMikael Pettersson
This avoids costly scheduling changes during module loading if native code is disabled in erts, or not present in the module being loaded. Signed-off-by: Mikael Pettersson <[email protected]>
2010-02-08Add test suite for lcnt in toolsBjörn-Egil Dahlberg
2010-02-08Add lcnt:rt_opt/1 bindings to erts_debugBjörn-Egil Dahlberg
Runtime options for copy_save.
2010-02-08Add auto width on string outputBjörn-Egil Dahlberg
2010-02-08Add lcnt documentationBjörn-Egil Dahlberg
Documentation for the lock profiling tool
2010-02-08Add lock profiling toolBjörn-Egil Dahlberg
The Lock profiling tool, lcnt, can make use of the internal lock statistics when the runtime system is built with this feature enabled. This provides a mechanism to examine potential lock bottlenecks within the runtime itself.
2010-02-08Merge branch 'sc/sctp-connect-nowait' into ccase/r13b04_devErlang/OTP
* sc/sctp-connect-nowait: Implement a non-blocking SCTP connect OTP-8414 There are new gen_sctp:connect_init/* functions that initiate an SCTP connection without blocking for the result. The result is delivered asynchronously as an sctp_assoc_change event. (Thanks to Simon Cornish.)
2010-02-08Merge branch 'po/odbc-update-delete-no-rows' into ccase/r13b04_devErlang/OTP
* po/odbc-update-delete-no-rows: SQL_NO_DATA and SQLSTATE 00000 indicate success for updates/deletes that affect no rows
2010-02-07Merge branch 'ta/code_clash_ez' into ccase/r13b04_devErlang/OTP
* ta/code_clash_ez: code_SUITE: add missing is_list(Config) guard Add tests for code:clash/0 Fix handling of archive (.ez) files in code:clash/0 OTP-8413 code:clash/0 now looks inside archives (.ez files). (Thanks to Tuncer Ayaz.)
2010-02-06Implement a non-blocking SCTP connectSimon Cornish
This patch adds a new set of functions - gen_sctp:connect_init/* that initiate an SCTP connection without blocking for the result. The result is delivered asynchronously as an sctp_assoc_change event. The new functions have the same API as documented for gen_sctp:connect/* with the following exceptions: * Timeout is only used to supervise resolving Addr (the peer address) * The possible return values are ok | {error, posix()} The caller application is responsible for receiving the #sctp_assoc_change{} event and correctly determining the connect it originated from (for example, by examining the remote host and/or port). The application should have at least {active, once} or use gen_sctp:recv to retrieve the connect result. The implementation of gen_sctp:connect suffers from a number of shortcomings which the user may avoid by using gen_sctp:connect_init and adding code to receive the connect result. First, irrespective of the Timeout value given to gen_sctp:connect, the OS attempts and retries the SCTP INIT according to various kernel parameters. If the Timeout value is shorter than the entire attempt then the application will still receive an sctp_assoc_change event after the {error, timeout} is returned from the initial call. This could be somewhat confusing (either to the application or the designer!) especially if the status is comm_up. Subsequent calls to connect before the OS has finished this process return {error, ealready} which may also be counter-intuitive. Second, there is a race-condition (documented in comments in inet_sctp.erl) that can cause the wrong sctp_assoc_change record to be returned to an application calling gen_sctp:connect. The race seriously affects connection attempts when using one-to-many sockets.
2010-02-06code_SUITE: add missing is_list(Config) guardBjörn Gustavsson
2010-02-06Add tests for code:clash/0Tuncer Ayaz
Add first batch of tests for code:clash/0. Signed-off-by: Tuncer Ayaz <[email protected]>
2010-02-05Merge branch 'dgud/wx_list_ctrl' into ccase/r13b04_devErlang/OTP
* dgud/wx_list_ctrl: Generate without trailing spaces Fix correct starting copyright year Do not emit trailing whitespace Added tests for wxListCtrl:getItem/2. Added wxListCtrl:getEditCtrl (not available on Mac) OTP-8408 Added wxListCtrl:getEditCtrl/1 (not available on Mac).
2010-02-05Merge branch 'egil/gitignore' into ccase/r13b04_devErlang/OTP
* egil/gitignore: Ignore files generated when running/building tests Update .gitignore files OTP-8411: egil/gitignore
2010-02-05Fix handling of archive (.ez) files in code:clash/0Tuncer Ayaz
code:clash/0 did not take into account .ez files when listing contents of code path entries. Using erl_prim_loader:list_dir/1 instead of file:list_dir/1 fixes the problem. Signed-off-by: Tuncer Ayaz <[email protected]>
2010-02-05OTP-8393 The new function shell:prompt_func/1 and the new applicationHans Bolinder
configuration parameter shell_prompt_func can be used for customizing the Erlang shell prompt.
2010-02-05OTP-8404: Doc: some corrections and improvements in STDLIBBjörn Gustavsson
2010-02-05Fix typo in kernel/test/code_SUITETuncer Ayaz
There was a small typo in the doc function clause of ext_mod_dep. Signed-off-by: Tuncer Ayaz <[email protected]>
2010-02-04Fix egd_render transparent to use float constantsBjörn-Egil Dahlberg
The render engine has float guards to enhance beam code generation. However, the default case used integers which caused the engine to crash. This is now fixed.
2010-02-04Removed the usage of the codeinclude tag in the documentation.Niclas Eklund
2010-02-04OTP-8402 Transactions could be left hanging if a node went down whenDan Gudmundsson
invoking mnesia:sync_transaction/[1,2]. Thanks Igor Ribeiro Sucupira.
2010-02-04OTP-8317, OTP-8323, OTP-8362 & OTP-8403 (hakan).Micael Karlberg
2010-02-03OTP-8395: Sequence number in Audit Trail Logs.Micael Karlberg
2010-02-03OTP-8317, OTP-8323 (rickard) & OTP-8362.Micael Karlberg
2010-02-03OTP-8323 Cross compilation improvements and other build systemRickard Green
improvements. Most notable: Lots of cross compilation improvements. The old cross compilation support was more or less non-existing as well as broken. Please, note that the cross compilation support should still be considered as experimental. Also note that old cross compilation configurations cannot be used without modifications. For more information on cross compiling Erlang/OTP see the $ERL_TOP/xcomp/README file. Support for staged install using <url href="http://www.gnu.org/prep/standards/html_node/DESTDIR.html">D ESTDIR</url>. The old broken INSTALL_PREFIX has also been fixed. For more information see the $ERL_TOP/README file. Documentation of the release target of the top Makefile. For more information see the $ERL_TOP/README file. make install now by default creates relative symbolic links instead of absolute ones. For more information see the $ERL_TOP/README file. $ERL_TOP/configure --help=recursive now works and prints help for all applications with configure scripts. Doing make install, or make release directly after make all no longer triggers miscellaneous rebuilds. Existing bootstrap system is now used when doing make install, or make release without a preceding make all. The crypto and ssl applications use the same runtime library path when dynamically linking against libssl.so and libcrypto.so. The runtime library search path has also been extended. The configure scripts of erl_interface and odbc now search for thread libraries and thread library quirks the same way as erts do. The configure script of the odbc application now also looks for odbc libraries in lib64 and lib/64 directories when building on a 64-bit system. The config.h.in file in the erl_interface application is now automatically generated in instead of statically updated which reduces the risk of configure tests without any effect.
2010-02-03OTP-8058 The GUI parts are rewritten to use wxWidgets. Thanks OlleHåkan Mattsson
Mattsson! For the time being it is still possible to use the old GS based version of the tool, but it is deprecated. The wxWidgets based version is started by default. A new tutorial has been added to the documentation. It is based on Jayson Vantuyl's article http://souja.net/2009/04/making-sense-of-erlangs-event-tracer.htm l. The functions et:trace_me/4 and et:trace_me/5 has been introduced in order to replace the deprecated functions et:report_event/4 and et:report_event/5. Hopefully the new names makes it a little more obvious what the intended usage of the functions are. A print function has been added to the GUI, in order to enable printing of sequence charts. More functionality for hiding unwanted events has been added to the GUI. The max_events, hide_unknown and display_mode configuration parameters to et_viewer is not used any more. Now the event cache in the Viewer only contains those events that actually are displayed in the GUI. Some minor bugs has been fixed. Such as a cleaning up trace patterns at termination and displaying events with detail level 100.
2010-02-03Merge branch 'is/mnesia-send-compressed' into ccase/r13b04_devErlang/OTP
* is/mnesia-send-compressed: Add option to compress data when copying tables between Mnesia nodes OTP-8406 Igor Ribeiro Sucupira added the option to compress data when copying tables between Mnesia nodes.
2010-02-03Removed obsoleted RFC (3266).Micael Karlberg