diff options
author | Patrik Nyblom <pan@erlang.org> | 2011-03-02 11:31:28 +0100 |
---|---|---|
committer | Patrik Nyblom <pan@erlang.org> | 2011-03-02 11:31:28 +0100 |
commit | aa0552cdf9098742f1998ec174fc9fed749e6f6d (patch) | |
tree | eef9890a51d771487b08c87eb398dc3670156aa9 /erts | |
parent | 29b1f35b3242ff80ddee14a833d5f3dcc4de9f65 (diff) | |
parent | 39c74e5e45518b6d0f4fb5876d33e0046ba8e14b (diff) | |
download | otp-aa0552cdf9098742f1998ec174fc9fed749e6f6d.tar.gz otp-aa0552cdf9098742f1998ec174fc9fed749e6f6d.tar.bz2 otp-aa0552cdf9098742f1998ec174fc9fed749e6f6d.zip |
Merge branch 'pan/halfword-tmp-heap-fixes/OTP-8332' into dev
* pan/halfword-tmp-heap-fixes/OTP-8332:
Fix assymetric (Un)UseTmpHeap in erl_process.c
Conflicts:
erts/emulator/beam/beam_emu.c
Diffstat (limited to 'erts')
-rw-r--r-- | erts/emulator/beam/beam_emu.c | 5 | ||||
-rw-r--r-- | erts/emulator/beam/erl_process.c | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c index af7ed064d3..a4fb454481 100644 --- a/erts/emulator/beam/beam_emu.c +++ b/erts/emulator/beam/beam_emu.c @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 1996-2010. All Rights Reserved. + * Copyright Ericsson AB 1996-2011. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -1220,6 +1220,9 @@ void process_main(void) do_schedule1: PROCESS_MAIN_CHK_LOCKS(c_p); ERTS_SMP_UNREQ_PROC_MAIN_LOCK(c_p); +#if HALFWORD_HEAP + ASSERT(erts_get_scheduler_data()->num_tmp_heap_used == 0); +#endif ERTS_VERIFY_UNUSED_TEMP_ALLOC(c_p); c_p = schedule(c_p, reds_used); ERTS_VERIFY_UNUSED_TEMP_ALLOC(c_p); diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c index e4a871fd7e..4d6e982325 100644 --- a/erts/emulator/beam/erl_process.c +++ b/erts/emulator/beam/erl_process.c @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 1996-2010. All Rights Reserved. + * Copyright Ericsson AB 1996-2011. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -7084,11 +7084,11 @@ static void doit_exit_monitor(ErtsMonitor *mon, void *vpcontext) DeclareTmpHeapNoproc(lhp,3); ErtsProcLocks rp_locks = (ERTS_PROC_LOCK_LINK | ERTS_PROC_LOCKS_MSG_SEND); - UseTmpHeapNoproc(3); rp = erts_pid2proc(NULL, 0, mon->pid, rp_locks); if (rp == NULL) { goto done; } + UseTmpHeapNoproc(3); rmon = erts_remove_monitor(&(rp->monitors),mon->ref); if (rmon) { erts_destroy_monitor(rmon); |