diff options
author | Björn-Egil Dahlberg <[email protected]> | 2012-10-02 18:44:03 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2012-10-15 20:49:43 +0200 |
commit | 6aa87d58b756ef65650ee793ad4ece8add7b70fb (patch) | |
tree | e40745a989254631a2f921942ea74ffb76a4337a /erts/emulator/beam/io.c | |
parent | 952db27ba0a5b87a2a47f3a7034a9bf92e3651e5 (diff) | |
download | otp-6aa87d58b756ef65650ee793ad4ece8add7b70fb.tar.gz otp-6aa87d58b756ef65650ee793ad4ece8add7b70fb.tar.bz2 otp-6aa87d58b756ef65650ee793ad4ece8add7b70fb.zip |
erts, heart: Ensure erl_crash.dump is written
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.
Diffstat (limited to 'erts/emulator/beam/io.c')
-rw-r--r-- | erts/emulator/beam/io.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/erts/emulator/beam/io.c b/erts/emulator/beam/io.c index 35b194f927..502ded4eca 100644 --- a/erts/emulator/beam/io.c +++ b/erts/emulator/beam/io.c @@ -5235,3 +5235,24 @@ erl_drv_getenv(char *key, char *value, size_t *value_size) { return erts_sys_getenv_raw(key, value, value_size); } + +/* get heart_port + * used by erl_crash_dump + * - uses the fact that heart_port is registered when starting heart + */ + +Port *erts_get_heart_port() { + + Port* port; + Uint ix; + + for(ix = 0; ix < erts_max_ports; ix++) { + port = &erts_port[ix]; + /* immediate compare */ + if (port->reg && port->reg->name == am_heart_port) { + return port; + } + } + + return NULL; +} |