aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/global.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2015-06-03 16:19:30 +0200
committerSverker Eriksson <[email protected]>2015-06-15 14:13:13 +0200
commitc09561dc51be736943a32862a41a3eaef2e41b83 (patch)
tree0ce32c8ed890f60b936fff4682c9bf5cfc5586ee /erts/emulator/beam/global.h
parenteea59350ddc1f8c2d86e10f5d38f0cda2f9081f3 (diff)
downloadotp-c09561dc51be736943a32862a41a3eaef2e41b83.tar.gz
otp-c09561dc51be736943a32862a41a3eaef2e41b83.tar.bz2
otp-c09561dc51be736943a32862a41a3eaef2e41b83.zip
erts: Yield in maps:merge
Diffstat (limited to 'erts/emulator/beam/global.h')
-rw-r--r--erts/emulator/beam/global.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/erts/emulator/beam/global.h b/erts/emulator/beam/global.h
index 07806c823c..14d42599a1 100644
--- a/erts/emulator/beam/global.h
+++ b/erts/emulator/beam/global.h
@@ -817,7 +817,7 @@ do {\
UWord _pbytes = PSTACK_COUNT(s) * sizeof(PSTACK_TYPE);\
(dst)->pstart = erts_alloc(s.alloc_type,\
sizeof(PSTK_DEF_STACK(s)));\
- memcpy((dst)->pstart, s.pstart, _pbytes);\
+ sys_memcpy((dst)->pstart, s.pstart, _pbytes);\
(dst)->psp = (dst)->pstart + _pbytes - sizeof(PSTACK_TYPE);\
(dst)->pend = (dst)->pstart + sizeof(PSTK_DEF_STACK(s));\
(dst)->alloc_type = s.alloc_type;\
@@ -838,6 +838,14 @@ do { \
ASSERT(s.psp < s.pend); \
} while (0)
+#define PSTACK_DESTROY_SAVED(pstack)\
+do {\
+ if ((pstack)->pstart) {\
+ erts_free((pstack)->alloc_type, (pstack)->pstart);\
+ (pstack)->pstart = NULL;\
+ }\
+} while(0)
+
/* binary.c */
@@ -1126,6 +1134,9 @@ Sint erts_binary_set_loop_limit(Sint limit);
/* external.c */
void erts_init_external(void);
+/* erl_map.c */
+void erts_init_map(void);
+
/* erl_unicode.c */
void erts_init_unicode(void);
Sint erts_unicode_set_loop_limit(Sint limit);