diff options
author | Rickard Green <[email protected]> | 2015-02-13 00:25:57 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2015-03-20 15:28:52 +0100 |
commit | 6b1921d767de5cd1a980234f83b36dbfa13d9fc7 (patch) | |
tree | 0b7a016c2b41f30f1adf81559e5fc6a4567099ea /erts/emulator/beam/global.h | |
parent | fa7b2c00cbf9212c4a3551980939b92fc6606510 (diff) | |
download | otp-6b1921d767de5cd1a980234f83b36dbfa13d9fc7.tar.gz otp-6b1921d767de5cd1a980234f83b36dbfa13d9fc7.tar.bz2 otp-6b1921d767de5cd1a980234f83b36dbfa13d9fc7.zip |
Erlang based BIF timer implementation for scalability
Diffstat (limited to 'erts/emulator/beam/global.h')
-rw-r--r-- | erts/emulator/beam/global.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/erts/emulator/beam/global.h b/erts/emulator/beam/global.h index e24aef3e3c..96c21d5320 100644 --- a/erts/emulator/beam/global.h +++ b/erts/emulator/beam/global.h @@ -1154,7 +1154,9 @@ erts_alloc_message_heap_state(Uint size, state = erts_smp_atomic32_read_acqb(&receiver->state); if (statep) *statep = state; - if (state & (ERTS_PSFLG_EXITING|ERTS_PSFLG_PENDING_EXIT)) + if (state & (ERTS_PSFLG_OFF_HEAP_MSGS + | ERTS_PSFLG_EXITING + | ERTS_PSFLG_PENDING_EXIT)) goto allocate_in_mbuf; #endif @@ -1174,7 +1176,9 @@ erts_alloc_message_heap_state(Uint size, state = erts_smp_atomic32_read_nob(&receiver->state); if (statep) *statep = state; - if ((state & (ERTS_PSFLG_EXITING|ERTS_PSFLG_PENDING_EXIT)) + if ((state & (ERTS_PSFLG_OFF_HEAP_MSGS + | ERTS_PSFLG_EXITING + | ERTS_PSFLG_PENDING_EXIT)) || (receiver->flags & F_DISABLE_GC) || HEAP_LIMIT(receiver) - HEAP_TOP(receiver) <= size) { /* |