aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
2012-12-07Merge branch 'rickard/port-optimizations/OTP-10336' into ↵Rickard Green
rickard/r16/port-optimizations/OTP-10336 * rickard/port-optimizations/OTP-10336: Change annotate level for emacs-22 in cerl Update etp-commands Add documentation on communication in Erlang Add support for busy port message queue Add driver callback epilogue Implement true asynchronous signaling between processes and ports Add erl_drv_[send|output]_term Move busy port flag Use rwlock for driver list Optimize management of port tasks Improve configuration of process and port tables Remove R9 compatibility features Use ptab functionality also for ports Prepare for use of ptab functionality also for ports Atomic port state Generalize process table implementation Implement functionality for delaying thread progress from unmanaged threads Conflicts: erts/doc/src/erl_driver.xml erts/doc/src/erlang.xml erts/emulator/beam/beam_bif_load.c erts/emulator/beam/beam_bp.c erts/emulator/beam/beam_emu.c erts/emulator/beam/bif.c erts/emulator/beam/copy.c erts/emulator/beam/erl_alloc.c erts/emulator/beam/erl_alloc.types erts/emulator/beam/erl_bif_info.c erts/emulator/beam/erl_bif_port.c erts/emulator/beam/erl_bif_trace.c erts/emulator/beam/erl_init.c erts/emulator/beam/erl_message.c erts/emulator/beam/erl_port_task.c erts/emulator/beam/erl_process.c erts/emulator/beam/erl_process.h erts/emulator/beam/erl_process_lock.c erts/emulator/beam/erl_trace.c erts/emulator/beam/export.h erts/emulator/beam/global.h erts/emulator/beam/io.c erts/emulator/sys/unix/sys.c erts/emulator/sys/vxworks/sys.c erts/emulator/test/port_SUITE.erl erts/etc/unix/cerl.src erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/prim_inet.beam erts/preloaded/src/prim_inet.erl lib/hipe/cerl/erl_bif_types.erl lib/kernel/doc/src/inet.xml lib/kernel/src/inet.erl
2012-12-07Add support for busy port message queueRickard Green
2012-12-07Add driver callback epilogueRickard Green
2012-12-07Implement true asynchronous signaling between processes and portsRickard Green
2012-12-06Merge branch 'maint'Ingela Anderton Andin
Conflicts: erts/emulator/sys/vxworks/sys.c erts/vsn.mk lib/ssl/src/ssl_connection.erl lib/ssl/test/ssl_basic_SUITE.erl
2012-12-06Merge branch 'bjorn/remove-tuple-funs/OTP-10170'Björn Gustavsson
* bjorn/remove-tuple-funs/OTP-10170: erl_expand_records: Remove stale support for literal tuple funs Teach is_function/2 that tuples are not funs
2012-12-04Merge branch 'ta/docsmaster'Henrik Nord
* ta/docsmaster: Fix various doc typos for R16 Fix various typos in HOWTO/ for R16 Fix various comment typos for R16 OTP-10611
2012-12-03Add erl_drv_[send|output]_termRickard Green
2012-12-03Move busy port flagRickard Green
2012-12-03Use rwlock for driver listRickard Green
Conflicts: erts/emulator/beam/io.c
2012-12-03Optimize management of port tasksRickard Green
2012-12-03Improve configuration of process and port tablesRickard Green
2012-12-03Remove R9 compatibility featuresRickard Green
2012-12-03Use ptab functionality also for portsRickard Green
2012-12-03Prepare for use of ptab functionality also for portsRickard Green
2012-12-03Atomic port stateRickard Green
2012-12-03Generalize process table implementationRickard Green
2012-12-03Implement functionality for delaying thread progress from unmanaged threadsRickard Green
2012-12-01Teach is_function/2 that tuples are not funsBjörn Gustavsson
2012-11-30erts: Change default of erl_crash.dumpBjörn-Egil Dahlberg
* Create an erl_crash.dump if no heart exists and no ERL_CRASH_DUMP_SECONDS is set (behaviour changed) * Don't create an erl_crash.dump if heart do exists and no ERL_CRASH_DUMP_SECONDS is set (behaviour not changed) This changes the behaviour back to the R15B02 default considering if a beam was running with no heart. The motivation is that we want a fast heart to fast restart erlang if it crashes but to be able to get non-truncated erl_crash.dumps via setting ERL_CRASH_DUMP_SECONDS if we so desire.
2012-11-28Fix various comment typos for R16Tuncer Ayaz
2012-11-28Merge branch 'sverk/crypto-unloading'Sverker Eriksson
* sverk/crypto-unloading: crypto: Link crypto_callback statically crypto: Add debug print macros crypto: Enable runtime upgrade of crypto crypto: Make unloading of crypto safer OTP-10596
2012-11-23Merge branch 'maint'Patrik Nyblom
Conflicts: erts/doc/src/erlang.xml
2012-11-23Merge branch 'pan/bs_append_crash' into maintPatrik Nyblom
* pan/bs_append_crash: Teach erts_bs_append not to dump core OTP-10590
2012-11-23Merge branch 'maint'Björn-Egil Dahlberg
2012-11-23Update copyright yearsBjörn-Egil Dahlberg
2012-11-23Merge branch 'maint'Björn-Egil Dahlberg
2012-11-23Merge branch 'egil/fix-crash_dump-lc-assert' into maintBjörn-Egil Dahlberg
* egil/fix-crash_dump-lc-assert: erts: Suppress lock assertion when dumping a crash
2012-11-22Teach erts_bs_append not to dump corePatrik Nyblom
When erts_bs_append() calls the garbage collector, it has set the PB_ACTIVE_WRITER flag in the ProcBin for the binary object is about to be appended to. Therefore, it is expected that the garbage collector should neither move nor shrink the binary object. But if the garbage collector does a minor collection (thereby clearing the PB_ACTIVE_WRITER flag in the ProcBin) and there is still not enough heap space, there will be a second major garbage collection. During the major collection (since the the PB_ACTIVE_WRITER flag was cleared), the binary object may be shrunk or moved (depending on sizes and how many other writable binaries there are in the process). Avoid the problem by clearing the PB_ACTIVE_WRITER flags in a separate pass after the garbage collection(s). Thanks to Denis Titoruk for helping us find this bug.
2012-11-19Fix bad assertRickard Green
2012-11-16Merge branch 'maint'Rickard Green
* maint: Add clearer warnings about misuse of NIF and driver functionality Fix erlang:memory(ets) Conflicts: erts/emulator/beam/erl_db.c
2012-11-16Merge branch 'rickard/ets-mem-bug/OTP-10558' into maintRickard Green
* rickard/ets-mem-bug/OTP-10558: Fix erlang:memory(ets)
2012-11-16erts: Suppress lock assertion when dumping a crashBjörn-Egil Dahlberg
2012-11-12Fix merge from maintRickard Green
2012-11-12Merge branch 'maint'Rickard Green
* maint: ssl: Adopt test case to not take so long Fix bug in erts_port_task_schedule() Use reduction limit in order to determine when to do wakeup Conflicts: erts/emulator/beam/erl_port_task.c erts/emulator/beam/erl_process.c
2012-11-12Merge branch 'rickard/port-sched-bug/OTP-10556' into maintRickard Green
* rickard/port-sched-bug/OTP-10556: Fix bug in erts_port_task_schedule()
2012-11-12Merge branch 'rickard/sched-wakeup/OTP-10476' into maintRickard Green
* rickard/sched-wakeup/OTP-10476: Use reduction limit in order to determine when to do wakeup
2012-11-08Merge branch 'maint'Björn Gustavsson
* maint: Fix binary append exceptions
2012-11-08Merge branch 'bjorn/erts/binary-append/OTP-10524' into maintBjörn Gustavsson
* bjorn/erts/binary-append/OTP-10524: Fix binary append exceptions
2012-11-06Fix erlang:memory(ets)Rickard Green
2012-11-06Fix bug in erts_port_task_schedule()Rickard Green
2012-11-05Fix binary append exceptionsBjörn Gustavsson
Code such as the following should cause an exception: Bin = <<0:1>>, <<Bin/binary,...>> (Because the "binary" type implies that the binary must have a size in bits that is a multiple of 8.) Depending on the binary, either no exception was thrown or the wrong exception was thrown (because c_p->freason was not set). Noticed-by: Adam Rutkowski
2012-10-24Merge branch 'maint'Björn-Egil Dahlberg
Conflicts: erts/etc/common/heart.c
2012-10-24Merge branch 'egil/ensure-erl_crash.dump/OTP-10422' into maintBjörn-Egil Dahlberg
* egil/ensure-erl_crash.dump/OTP-10422: test: Relax timeouts for heart_SUITE erts: Fix crash dump write to port hack erts: Fix lock check assertion doc: Document ERL_CRASH_DUMP_SECONDS behaviour test: Add test for heart restart on crash test: Add test for heart restart on crash erts: Change ERL_CRASH_DUMP_SECONDS behaviour test: Refactor away ?line macros in heart_SUITE erts: Search for heart in ports that are alive heart: Refactor heart debugging erts, heart: Ensure erl_crash.dump is written
2012-10-23erts: Fix lock check assertionBjörn-Egil Dahlberg
2012-10-16erts: Change ERL_CRASH_DUMP_SECONDS behaviourBjörn-Egil Dahlberg
Not setting ERL_CRASH_DUMP_SECONDS will now terminate beam immediately on a crash without writing a crash dump file. Setting ERL_CRASH_DUMP_SECONDS to 0 will also terminate beam immediately on a crash without writing a crash dump file, i.e. same as not setting ERL_CRASH_DUMP_SECONDS environment variable. Setting ERL_CRASH_DUMP_SECONDS to a negative value will let the beam wait indefinitely on the crash dump file being written. Setting ERL_CRASH_DUMP_SECONDS to a positive value will let the beam wait that many seconds on the crash dump file being written. A positive value will set both an alarm in beam AND a heart timeout for restart if heart is running. This is due to the change of 'heart' behavior when 'heart' is listening for a crash.
2012-10-15erts: Search for heart in ports that are aliveBjörn-Egil Dahlberg
2012-10-15erts, heart: Ensure erl_crash.dump is writtenBjörn-Egil Dahlberg
When a crash dump is about to be written and we have heartbeat enabled on a system. We need time to write it before heart explicitly kills the beam.
2012-10-09crypto: Make unloading of crypto saferSverker Eriksson
Facts: crypto nif-lib registers callback functions that openssl uses for memory management and thread synchronization. The callback functions can only be set once, openssl does not allow changing the callback functions. Problem: If openssl is dynamicly linked to crypto, you might get s scenario where the crypto lib is unloaded while leaving openssl loaded with its old pointers to the unloaded crypto code intact. If crypto is then reloaded (by init:restart() for example), the crypto nif-lib might get relocated at a different address. crypto calls openssl which in turn calls the old invalid callback functions...kaboom. Solution: Break apart the callback functions into a separate dynamic lib that crypto loads with dlopen. When crypto is unloaded the callback lib is left in place to be reused if/when crypto is loaded again.
2012-10-09Use reduction limit in order to determine when to do wakeupRickard Green