diff options
author | Björn-Egil Dahlberg <[email protected]> | 2017-03-21 10:48:15 +0100 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2017-03-22 10:59:06 +0100 |
commit | 0dec7ddb341b2b7d2643f86dd9e9497b3f5268a7 (patch) | |
tree | ddd716eb7fa7a1b9bb7a66b9c014990f69077777 /erts/emulator/beam/sys.h | |
parent | 303f4781e485f66e1eb6c5db77ff9523e5f69b7e (diff) | |
download | otp-0dec7ddb341b2b7d2643f86dd9e9497b3f5268a7.tar.gz otp-0dec7ddb341b2b7d2643f86dd9e9497b3f5268a7.tar.bz2 otp-0dec7ddb341b2b7d2643f86dd9e9497b3f5268a7.zip |
erts: Don't allocate memory during signal handling
Allocations and message sending are now scheduled by a signal,
via a signal state bitmap, instead of doing it directly in the signal handler.
Diffstat (limited to 'erts/emulator/beam/sys.h')
-rw-r--r-- | erts/emulator/beam/sys.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/erts/emulator/beam/sys.h b/erts/emulator/beam/sys.h index c6ea8049c3..144dd60d21 100644 --- a/erts/emulator/beam/sys.h +++ b/erts/emulator/beam/sys.h @@ -487,6 +487,12 @@ extern volatile int erts_break_requested; void erts_do_break_handling(void); #endif +#if !defined(ERTS_SMP) && !defined(__WIN32__) +extern volatile Uint erts_signal_state; +#define ERTS_SIGNAL_STATE erts_signal_state +void erts_handle_signal_state(void); +#endif + #ifdef ERTS_SMP extern erts_smp_atomic32_t erts_writing_erl_crash_dump; extern erts_tsd_key_t erts_is_crash_dumping_key; |