diff options
author | Lukas Larsson <[email protected]> | 2019-03-19 14:08:16 +0100 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2019-03-25 16:34:11 +0100 |
commit | c18f95e787125f8be5a5b1731b896f7008a5d5db (patch) | |
tree | c25d4818b0b8eeb6e91040ff96f3f9f584976755 /erts/emulator/beam/erl_vm.h | |
parent | 178721284f342e9c8408c336741e73b61162b138 (diff) | |
download | otp-c18f95e787125f8be5a5b1731b896f7008a5d5db.tar.gz otp-c18f95e787125f8be5a5b1731b896f7008a5d5db.tar.bz2 otp-c18f95e787125f8be5a5b1731b896f7008a5d5db.zip |
erts: erts_factory_proc_init should not set hole marker
Setting the hole marker in debug on the entire heap is very slow
so instead we do it in erts_produce_heap.
Diffstat (limited to 'erts/emulator/beam/erl_vm.h')
-rw-r--r-- | erts/emulator/beam/erl_vm.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/erts/emulator/beam/erl_vm.h b/erts/emulator/beam/erl_vm.h index 35eae18394..e623148587 100644 --- a/erts/emulator/beam/erl_vm.h +++ b/erts/emulator/beam/erl_vm.h @@ -67,9 +67,10 @@ (unsigned long)HEAP_TOP(p),(sz),__FILE__,__LINE__)), \ */ # ifdef CHECK_FOR_HOLES -# define INIT_HEAP_MEM(p,sz) erts_set_hole_marker(HEAP_TOP(p), (sz)) +Eterm* erts_set_hole_marker(Eterm* ptr, Uint sz); +# define INIT_HEAP_MEM(p,sz) erts_set_hole_marker(p, (sz)) # else -# define INIT_HEAP_MEM(p,sz) sys_memset(HEAP_TOP(p),0x01,(sz)*sizeof(Eterm*)) +# define INIT_HEAP_MEM(p,sz) sys_memset(p,0x01,(sz)*sizeof(Eterm*)) # endif #else # define INIT_HEAP_MEM(p,sz) ((void)0) @@ -91,7 +92,7 @@ ErtsHAllocLockCheck(p), \ (IS_FORCE_HEAP_FRAGS || (((HEAP_LIMIT(p) - HEAP_TOP(p)) < (sz))) \ ? erts_heap_alloc((p),(sz),(xtra)) \ - : (INIT_HEAP_MEM(p,sz), \ + : (INIT_HEAP_MEM(HEAP_TOP(p),sz), \ HEAP_TOP(p) = HEAP_TOP(p) + (sz), HEAP_TOP(p) - (sz)))) #define HAlloc(P, SZ) HAllocX(P,SZ,0) |