aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_message.h
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2010-07-22 17:55:28 +0200
committerBjörn-Egil Dahlberg <[email protected]>2010-07-22 18:00:39 +0200
commitdcbaac53d7e626bea7a69b03ea8b54fb9bf0a316 (patch)
tree92eeb13ed8c39f716f910806fe862c6b139de1d3 /erts/emulator/beam/erl_message.h
parentcc28713df8cdcc83d9df38e114d51708ea633ed8 (diff)
downloadotp-dcbaac53d7e626bea7a69b03ea8b54fb9bf0a316.tar.gz
otp-dcbaac53d7e626bea7a69b03ea8b54fb9bf0a316.tar.bz2
otp-dcbaac53d7e626bea7a69b03ea8b54fb9bf0a316.zip
Increase vheap counter to Uint64
This will reduce the risk of integer wrapping in bin vheap counting. The vheap size series will now use the golden ratio instead of doubling and fibonacci sequences. OTP #8730
Diffstat (limited to 'erts/emulator/beam/erl_message.h')
-rw-r--r--erts/emulator/beam/erl_message.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_message.h b/erts/emulator/beam/erl_message.h
index 890af2675c..3815e420d2 100644
--- a/erts/emulator/beam/erl_message.h
+++ b/erts/emulator/beam/erl_message.h
@@ -37,9 +37,13 @@ struct erl_off_heap_header {
struct erl_off_heap_header* next;
};
+#define OH_OVERHEAD(oh, size) do { \
+ (oh)->overhead += size; \
+} while(0)
+
typedef struct erl_off_heap {
struct erl_off_heap_header* first;
- int overhead; /* Administrative overhead (used to force GC). */
+ Uint64 overhead; /* Administrative overhead (used to force GC). */
} ErlOffHeap;
#include "external.h"