aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2011-12-07Return {error,closed} from sendfile if closedLukas Larsson
If the socket is closed by the remote end, sendfile now returns {error,closed}.
2011-12-05Clarify some code commentsLukas Larsson
Thanks Tuncer Ayaz
2011-12-05Make solaris use sendfilevLukas Larsson
sendfilev is a richer API which allows us to do non blocking TCP on solaris. The normal sendfile API seems to have some issue with non blocking sockets and the return value of sendfile.
2011-12-02Add sendfile server printoutsLukas Larsson
2011-12-02Skip recv/send during tests for fallback platformsLukas Larsson
2011-12-02Remove header/trailer supportLukas Larsson
Since the API for headers/trailers seem to be very awkward to work with when using non-blocking io the feature is dropped for now. See unix_efile.c for more details.
2011-12-02Expand sendfile documentationLukas Larsson
2011-12-02Move sendfile api to file moduleLukas Larsson
Since sendfile could in theory be used to send to any type of file descriptor in *nix, it is a better fit to have it in file.
2011-12-01Preliminary work on header/trailerLukas Larsson
Have to figure out how to represent progress in header writing when using non-blocking, not sure how to do this.
2011-12-01Add tests for send/recv/sendfile interactionsLukas Larsson
Tests for when a gen_tcp:send/recv is ordered while a sendfile is in progress.
2011-12-01Remove tests for file_server sendfileLukas Larsson
2011-12-01sendfile caller now has to be the controlling_processLukas Larsson
This is needed because otherwise there could be scenarios when the efile driver blocks a fd and then crashes without the inet driver ever finding out. Now when the process crashes the port will close and we can cleanup in the inet driver.
2011-12-01Remove support for file_server, sendfile has to be rawLukas Larsson
Because the sending process has to be the controlling process of the tcp socket used to send data it is not possible to use the file_server
2011-12-01Implement ignorefd for TCPLukas Larsson
Ignore fd is a feature used by sendfile to temporarily remove all driver_select calls on that fd so that another driver can select on it. It also delays all actions which sends or receives data in that fd until in the fd is no longer ignored. Only the controlling_process should use the feature as it is otherwise possible that the ignore will never be cleaned up and hence create a memory leak in the driver. An ignored driver will not detect that an fd has been closed until it is unignored.
2011-12-01Implement sendfile when there are no async threadsLukas Larsson
When there are no async threads sendfile will use the ready_output select on the socket fd to know when to send data. The file_desc will also be put in the sending sendfile_state which buffers all other commands to that file until the sendfile is done.
2011-12-01Implement blocking calls for sendfileLukas Larsson
Move sendfile data to invoke data instead of file_descr. Remove usage of ready_output when doing a send. If told to send 0 bytes, file_sendfile now sends the entire file for linux.
2011-12-01Implement sendfile using blocking io in asynch threadsLukas Larsson
Move the command handling to outputv in preparation for header and trailer inclusion in the sendfile api. Use the standard efile communication functions for sendfile.
2011-12-01Create erlang fallback for sendfileLukas Larsson
Created erlang fallback for sendfile in gen_tcp and moved sendfile from file to gen_tcp. Also created testcases for testing all different options to sendfile. For info about how sendfile should work see the BSD man pages as they contain a more complete API than other *nixes.
2011-12-01Move sendfile tests to gen_tcp_api_SUITELukas Larsson
2011-11-29Implement file:sendfileTuncer Ayaz
Allow Erlang code to use sendfile() where available by wrapping it as file:sendfile/4 and file:sendfile/2. sendfile(2) - Linux man page: "sendfile() copies data between one file descriptor and another. Because this copying is done within the kernel, sendfile() is more efficient than the combination of read(2) and write(2), which would require transferring data to and from user space."
2011-11-24Merge branch 'bjorn/remove-regexp-module/OTP-9737'Björn Gustavsson
* bjorn/remove-regexp-module/OTP-9737: stdlib: Remove the deprecated regexp module
2011-11-23Merge branch 'ia/ssl/renegotiation-dos-attack/OTP-9739'Ingela Anderton Andin
* ia/ssl/renegotiation-dos-attack/OTP-9739: Mitigate Computational DoS attack
2011-11-23Avoid slow code loading of BEAM code in a hipe-enabled emulatorBjörn Gustavsson
On my Linux computer, building the entire Erlang/OTP system with hipe disabled took about 8 minutes. With hipe enabled, but without any native code, the build took about 23 minutes, i.e. more than 3 times slower. (The computer has 4 cores, and I used 'make -j6'.) On my eight-core Mac (running 'make -j10') there was only a slight slowdown when hipe was enabled. The culprit is hipe_unified_loader:post_beam_load/1, which will be called every time a module is loaded (even if the module contains no native code). If post_beam_load/1 is called in a hipe-enabled emulator, it will block multi-scheduling, even if no work needs to be done. Apparently the cost for blocking multi-scheduling can vary greatly, depending on the operating system and system load. As a quick and conservative fix, don't call post_beam_load/1 unless some native code has been previously loaded.
2011-11-22Revert "Update version numbers for pre-release of R15"Björn-Egil Dahlberg
This reverts commit e21ff9b0b69219ab3853be7e80813156113152b7.
2011-11-22Update version numbers for pre-release of R15OTP_R15ABjörn Gustavsson
2011-11-21Mitigate Computational DoS attackIngela Anderton Andin
2011-11-19Merge branch 'dgud/observer/gui/OTP-4779'Dan Gudmundsson
* dgud/observer/gui/OTP-4779: [observer] Implemented basic tracing functionality [observer] Work around wxWidgets windows bug [observer] Rework tracing part of the gui [observer] Fix portability bugs [observer] Improve process_info window [observer] Misc cleanup and fixes [observer] Clean up code [observer] Add a [d]ets viewer, tv replacement [observer] Started on a wx gui
2011-11-18Merge branch 'pan/osx_gcc_fixes'Patrik Nyblom
* pan/osx_gcc_fixes: Fix typo in erts/configure.in Make OTP build w/alternative gcc on MacOS Lion OTP-9712
2011-11-18Merge branch 'pan/binary_match_scope/OTP-9701'Patrik Nyblom
* pan/binary_match_scope/OTP-9701: Remove remaining gcc 4.6 assigned-but-not-used warnings from erts Remove GCC 4.6 set-but-not-used warning from erl_bif_binary Make binary:match with scope return correct values
2011-11-18Merge branch 'sverk/hipe-without-fpe/OTP-9724'Sverker Eriksson
* sverk/hipe-without-fpe/OTP-9724: otp_build: Disable FPE by default on Linux stdlib: Make sure qlc_SUITE:otp_6964 restores backtrace_depth erts: Add test for inf/NaN intermediate float results hipe,erts: Allow hipe without floating point exceptions hipe: Fix bug in hipe_rtl_lcm:calc_killed_expr_bb erts: Rename macros used by float instructions without FPE
2011-11-18Merge branch 'sa/dialyzer-behaviours'Henrik Nord
* sa/dialyzer-behaviours: Wrap up behaviours patch for Dialyzer Detection of callback-spec discrepancies Allow none() as return value in callbacks Behaviour callback discrepancy detection for Dialyzer Add lookup function for callbacks Store callbacks in codeserver and PLT Collect callback definitions during compilation Update inets results OTP-9731
2011-11-18[observer] Implemented basic tracing functionalityDan Gudmundsson
Use ttb which does most of the work already.
2011-11-18Merge branch 'ia/public_key/ssl/git-ignore'Ingela Anderton Andin
* ia/public_key/ssl/git-ignore: Updated public_key and ssl ignores
2011-11-18Merge branch 'lukas/common_test/make_cth_non_alpha/OTP-9449'Björn-Egil Dahlberg
* lukas/common_test/make_cth_non_alpha/OTP-9449: Remove alpha notice since CTH are now final
2011-11-18Merge branch 'peppe/common_test/css_and_xhtml'Peter Andersson
* peppe/common_test/css_and_xhtml: Make absolute paths in log files relative Fix bad error printout Copy default CSS file to log directory before test run Add CSS stylesheet for the text and tables in Common Test and Test Server OTP-9706
2011-11-18Wrap up behaviours patch for DialyzerStavros Aronis
Enable warnings by default, add two options for suppressing them, fix warning formatting and update testsuites.
2011-11-18Detection of callback-spec discrepanciesStavros Aronis
2011-11-18Allow none() as return value in callbacksStavros Aronis
2011-11-18Behaviour callback discrepancy detection for DialyzerStavros Aronis
2011-11-18[orber] Remove usage of ssl:seed/1Lars Thorsen
2011-11-18Make absolute paths in log files relativePeter Andersson
2011-11-18Merge branch 'siri/sasl/upgrade-erts/OTP-9438'Siri Hansen
* siri/sasl/upgrade-erts/OTP-9438: Fix bug in erts upgrade on windows Add release vsn info to erts_vsn_changed warning Check for sasl application in systools:make_script and make_relup Add syntax check of relup to check_install_release and install_release Add documentation for upgrade from pre R15 to post R15 sasl Handle upgrade from pre R15 to post R15 sasl Step version of sasl to 2.2 for R15 Document upgrade instructions restart_new_emulator and restart_emulator Wait for two restarts in upgrade_restart test Add restart_new_emulator instruction to kernel, stdlib and sasl appups Distinguish restart_new_emulator from restart_emulator in upgrade instructions Upgrade erts: merge sys.config for tmp release instead of using old Allow regexp for version in .appup Restart emulator before running upgrade script when erts is upgraded Conflicts: lib/sasl/src/release_handler.erl lib/sasl/test/release_handler_SUITE.erl
2011-11-18Add lookup function for callbacksStavros Aronis
2011-11-18Store callbacks in codeserver and PLTStavros Aronis
2011-11-18Collect callback definitions during compilationStavros Aronis
2011-11-18Update inets resultsStavros Aronis
2011-11-18[erl_docgen] Add an application ref pageLars Thorsen
2011-11-18[erl_docgen] Added the info file.Lars Thorsen
2011-11-18[erl_docgen] Tidy up the documentation moved from docbuilder to erl_docgenLars Thorsen
2011-11-18[erl_docgen] Add missing xhtml-special.ent and xhtml-symbol.entLars Thorsen