aboutsummaryrefslogtreecommitdiffstats
path: root/erts/preloaded/ebin
AgeCommit message (Collapse)Author
2013-11-18erts: Add erlang wrappers to binary_to_termSverker Eriksson
to not expose the trapping BIF in the stacktrace when it throws badarg.
2013-11-18Execution of system tasks in context of another processRickard Green
A process requesting a system task to be executed in the context of another process will be notified by a message when the task has executed. This message will be on the form: {RequestType, RequestId, Pid, Result}. A process requesting a system task to be executed can set priority on the system task. The requester typically set the same priority on the task as its own process priority, and by this avoiding priority inversion. A request for execution of a system task is made by calling the statically linked in NIF erts_internal:request_system_task(Pid, Prio, Request). This is an undocumented ERTS internal function that should remain so. It should *only* be called from BIF implementations. Currently defined system tasks are: * garbage_collect * check_process_code Further system tasks can and will be implemented in the future. The erlang:garbage_collect/[1,2] and erlang:check_process_code/[2,3] BIFs are now implemented using system tasks. Both the 'garbage_collect' and the 'check_process_code' operations perform or may perform garbage_collections. By doing these via the system task functionality all garbage collect operations in the system will be performed solely in the context of the process being garbage collected. This makes it possible to later implement functionality for disabling garbage collection of a process over context switches. Newly introduced BIFs: * erlang:garbage_collect/2 - The new second argument is an option list. Introduced option: * {async, RequestId} - making it possible for users to issue asynchronous garbage collect requests. * erlang:check_process_code/3 - The new third argument is an option list. Introduced options: * {async, RequestId} - making it possible for users to issue asynchronous check process code requests. * {allow_gc, boolean()} - making it possible to issue requests that aren't allowed to garbage collect (operation will abort if gc should be needed). These options have been introduced as a preparation for parallelization of check_process_code operations when the code_server is about to purge a module.
2013-11-18Merge branch 'maint'Siri Hansen
Conflicts: erts/preloaded/ebin/erl_prim_loader.beam
2013-11-15Add sync option to file:open/2Joseph Blomstedt
The sync option adds the POSIX O_SYNC flag to the open system call on platforms that support the flag or its equivalent, e.g., FILE_FLAG_WRITE_THROUGH on Windows. For platforms that don't support it, file:open/2 returns {error, enotsup} if the sync option is passed in. The semantics of O_SYNC are platform-specific. For example, not all platforms guarantee that all file metadata are written to the disk along with the file data when the flag is in effect. This issue is noted in the documentation this commit adds for the sync option. Add a test for the sync option. Note however that the underlying OS semantics for O_SYNC can't be tested automatically in any practical way, so the test assumes the OS does the right thing with the flag when present. For manual verification, dtruss on OS X and strace on Linux were both run against beam processes to watch calls to open(), and file:open/2 was called in Erlang shells to open files for writing, both with and without the sync option. Both the dtruss output and the strace output showed that the O_SYNC flag was present in the open() calls when sync was specified and was clear when sync was not specified.
2013-11-15Update preloadedSiri Hansen
2013-11-07Implement prim_inet:socknames/1,2 and prim_inet:peernames/1,2Raimo Niskanen
2013-10-15Merge branch 'maint'Sverker Eriksson
Conflicts: erts/preloaded/ebin/erlang.beam
2013-10-07Merge branch 'sv-socket-active-n'Lukas Larsson
OTP-11368 * sv-socket-active-n: Update preloaded add {active,N} socket option for TCP, UDP, and SCTP
2013-09-30erts: Add erts_mmap statsSverker Eriksson
As part of erlang:system_info({allocator,mseg_alloc}) and erl_crash.dump
2013-09-30Merge branch 'maint'Lukas Larsson
* maint: Update preloaded add system_info(ets_limit) Conflicts: erts/preloaded/ebin/erlang.beam
2013-09-24Update preloadedLukas Larsson
2013-09-23Update preloadedLukas Larsson
2013-09-13Update preloaded modulesMagnus Lidén
2013-09-11Merge branch 'maint'Fredrik Gustafsson
Conflicts: erts/preloaded/ebin/erlang.beam
2013-09-10Update preloadedFredrik Gustafsson
2013-09-04Merge branch 'maint'Raimo Niskanen
Conflicts: erts/preloaded/ebin/prim_inet.beam
2013-09-04Merge branch 'raimo/linux-network-namespace-sockopt/OTP-11157' into maintRaimo Niskanen
* raimo/linux-network-namespace-sockopt/OTP-11157: Document socket option 'netns' Rudimentary test Make netns option value a string Implement netns for SCTP + bugfixes Implement netns option for TCP and UDP Implement emulator netns support for TCP and UDP
2013-08-29Merge branch 'maint'Fredrik Gustafsson
Conflicts: erts/preloaded/ebin/zlib.beam
2013-08-29Updated preloadedFredrik Gustafsson
2013-07-17Implement emulator netns support for TCP and UDPRaimo Niskanen
2013-06-15Merge branch 'maint'Raimo Niskanen
Conflicts: erts/preloaded/ebin/prim_inet.beam
2013-06-15Improve solutionRaimo Niskanen
2013-06-12Update preloaded modulesBjörn-Egil Dahlberg
2013-06-10Merge branch 'maint'Lukas Larsson
* maint: erts: Update spec in preloaded to reflect success typing (again) Conflicts: erts/preloaded/ebin/erlang.beam
2013-06-07erts: Update spec in preloaded to reflect success typing (again)Lukas Larsson
2013-06-05Merge branch 'maint'Lukas Larsson
* maint: erts: Update spec in preloaded to reflect sucess typing Conflicts: erts/preloaded/ebin/erlang.beam
2013-06-05Merge branch 'lukas/erts/gc_stat_contention/OTP-10271' into maintLukas Larsson
* lukas/erts/gc_stat_contention/OTP-10271: erts: Update spec in preloaded to reflect sucess typing
2013-06-05Merge branch 'siri/install-otp-in-unicode-path'Siri Hansen
* siri/install-otp-in-unicode-path: [sasl] Remove priv dir after release_handler_SUITE Update preloaded init.beam Allow unicode characters for boot and config in init:make_permanent [sasl] Clean priv_dir after systools_SUITE [reltool] Use unicode characters in work dir for unicode test [sasl] Use unicode characters in priv dir name also on windows [reltool] Write erl.ini as UTF-8 [sasl] Update tests to run under unicode path [sasl] Rewrite release_handler_SUITE:clean_priv_dir to work on unicode paths [sasl] Update example/target_system.erl to handle unicode [sasl] Write erl.ini as utf8, allowing unicode path for root dir and bin dir
2013-06-04Merge branch 'maint'Rickard Green
* maint: erts: Document the +M<S>acul command line argument erts: Carrier pool information in allocator information erts: Use carrier pool for migration of carriers erts: Implement test case for carrier pool erts: Implement carrier pool erts: Fix type errors in info functions erts: Use Uint64 for call counts erts: Fix failing testcase alloc_SUITE:rbtree erts: Rename allocator aoffcbf to aoffcaobf erts: Remove unnecessary flag arguments in allocators erts: Remove SBMBC allocator erts: Add test for add_mbc and remove_mbc callbacks erts: Fix deallocation in removed carrier erts: Change naive list to rb-tree of carriers in AOFF allocator erts: Prepare aoff allocator for carrier migration erts: Make carrier header sizes customizable erts: Add "bestfit within carrier" for aoff allocator (aoffcbf) Conflicts: erts/preloaded/ebin/erlang.beam
2013-06-04Merge branch 'rickard-sverker/carrier-migration/OTP-10279' into maintRickard Green
* rickard-sverker/carrier-migration/OTP-10279: erts: Document the +M<S>acul command line argument erts: Carrier pool information in allocator information erts: Use carrier pool for migration of carriers erts: Implement test case for carrier pool erts: Implement carrier pool erts: Fix type errors in info functions erts: Use Uint64 for call counts erts: Fix failing testcase alloc_SUITE:rbtree erts: Rename allocator aoffcbf to aoffcaobf erts: Remove unnecessary flag arguments in allocators erts: Remove SBMBC allocator erts: Add test for add_mbc and remove_mbc callbacks erts: Fix deallocation in removed carrier erts: Change naive list to rb-tree of carriers in AOFF allocator erts: Prepare aoff allocator for carrier migration erts: Make carrier header sizes customizable erts: Add "bestfit within carrier" for aoff allocator (aoffcbf)
2013-06-04erts: Carrier pool information in allocator informationRickard Green
That is, include information about carrier pool in result returned from erlang:system_info({allocator,allocator_sizes, _}).
2013-06-04erts: Use carrier pool for migration of carriersRickard Green
2013-06-03Merge branch 'maint'Fredrik Gustafsson
2013-06-03Merge branch 'nox/erl_eval-receive/OTP-11137' into maintFredrik Gustafsson
* nox/erl_eval-receive/OTP-11137: Updated primary bootstrap for erl_eval Added preloaded prim_eval Fix receive support in erl_eval with a BEAM module
2013-06-03erts: Remove SBMBC allocatorSverker Eriksson
2013-06-03erts: Change erlang:open_port/2 specDan Gudmundsson
2013-05-31Merge branch 'maint'Lukas Larsson
* maint: Replace gc stat lock with sched spec data Conflicts: erts/preloaded/ebin/erlang.beam
2013-05-31Merge branch 'lukas/erts/gc_stat_contention/OTP-10271' into maintLukas Larsson
* lukas/erts/gc_stat_contention/OTP-10271: Replace gc stat lock with sched spec data
2013-05-28Update preloaded init.beamSiri Hansen
2013-05-28Added preloaded prim_evalFredrik Gustafsson
2013-05-28Fix receive support in erl_eval with a BEAM moduleAnthony Ramine
Using the low-level BEAM instructions, we can loop over each message in the process queue and removes the first message that matches, without receiving them all to later send them back to itself. The function prim_eval:'receive'/2 is equivalent to the following pseudo-code: 'receive'(F, T) -> RESET MESSAGE QUEUE POINTER, LOOP: case PEEK CURRENT MESSAGE WITH TIMEOUT T of {ok,Msg} -> case F(Msg) of nomatch -> DECREMENT TIMEOUT T, ADVANCE MESSAGE QUEUE POINTER, GOTO LOOP; Result -> RESET MESSAGE QUEUE POINTER, Result end; timeout -> RESET MESSAGE QUEUE POINTER, timeout end. To not break Dialyzer and other tools, we use a stub Erlang module which abstract code is forcefully inserted into prim_inet.erl afterwards compilation.
2013-05-27Merge branch 'maint'Raimo Niskanen
Conflicts: erts/preloaded/ebin/prim_inet.beam
2013-05-24Do not unlink before closing portRaimo Niskanen
2013-05-16Merge branch 'maint'Rickard Green
* maint: Only verify not busy for erlang:send(Port, Msg, [nosuspend]) until scheduled Make high_msgq_watermark and low_msgq_watermark generic inet options Do not treat port_set_data/port_get_data as signals Add 'frmptr' emulator type Conflicts: erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/erts_internal.beam erts/preloaded/ebin/prim_inet.beam
2013-05-16Merge branch 'rickard/frmptr' into maintRickard Green
* rickard/frmptr: Add 'frmptr' emulator type Conflicts: erts/preloaded/ebin/erlang.beam
2013-05-16Merge branch 'rickard/inet_opts/OTP-11075' into maintRickard Green
* rickard/inet_opts/OTP-11075: Make high_msgq_watermark and low_msgq_watermark generic inet options Conflicts: erts/preloaded/ebin/prim_inet.beam
2013-05-16Merge branch 'rickard/inet_db/OTP-11074' into maintRickard Green
* rickard/inet_db/OTP-11074: Do not treat port_set_data/port_get_data as signals Conflicts: erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/erts_internal.beam
2013-05-06Make high_msgq_watermark and low_msgq_watermark generic inet optionsRickard Green
2013-05-06Update preloaded filesHans Bolinder
2013-04-29Do not treat port_set_data/port_get_data as signalsRickard Green