diff options
author | Sverker Eriksson <[email protected]> | 2014-03-13 21:45:12 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2014-03-13 21:45:12 +0100 |
commit | 0c7cc3253811ab6a49346101ed29297a85d00327 (patch) | |
tree | be5947787a29aa468465d5ec2935ecc5365d3d83 | |
parent | db7b9b5d5ade023d5f05a5967a1ed65a8fa9880c (diff) | |
parent | 2cacb193552f4037ef56b5a39905dd91f0f39c8c (diff) | |
download | otp-0c7cc3253811ab6a49346101ed29297a85d00327.tar.gz otp-0c7cc3253811ab6a49346101ed29297a85d00327.tar.bz2 otp-0c7cc3253811ab6a49346101ed29297a85d00327.zip |
Merge branch 'sverk/valgrind-leaks'
* sverk/valgrind-leaks:
erts: Suppress false leak in hipe_thread_signal_init
erts: Fix leak in nif_SUITE:resource_takeover (again)
-rw-r--r-- | erts/emulator/hipe/hipe_x86_signal.c | 6 | ||||
-rw-r--r-- | erts/emulator/test/nif_SUITE_data/nif_mod.c | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/erts/emulator/hipe/hipe_x86_signal.c b/erts/emulator/hipe/hipe_x86_signal.c index 8f997aafab..f5668013e2 100644 --- a/erts/emulator/hipe/hipe_x86_signal.c +++ b/erts/emulator/hipe/hipe_x86_signal.c @@ -2,7 +2,7 @@ * %CopyrightBegin% * - * Copyright Ericsson AB 2001-2013. All Rights Reserved. + * Copyright Ericsson AB 2001-2014. 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 @@ -304,7 +304,9 @@ static void hipe_sigaltstack(void *ss_sp) */ void hipe_thread_signal_init(void) { - hipe_sigaltstack(erts_alloc(ERTS_ALC_T_HIPE, SIGSTKSZ)); + /* Stack don't really need to be cache aligned. + We use it to suppress false leak report from valgrind */ + hipe_sigaltstack(erts_alloc_permanent_cache_aligned(ERTS_ALC_T_HIPE, SIGSTKSZ)); } #endif diff --git a/erts/emulator/test/nif_SUITE_data/nif_mod.c b/erts/emulator/test/nif_SUITE_data/nif_mod.c index 55a0d2ac4f..11b5d0cc35 100644 --- a/erts/emulator/test/nif_SUITE_data/nif_mod.c +++ b/erts/emulator/test/nif_SUITE_data/nif_mod.c @@ -217,7 +217,8 @@ static int upgrade(ErlNifEnv* env, void** priv, void** old_priv_data, ERL_NIF_TE *priv = *old_priv_data; do_load_info(env, load_info, &retval); - + if (retval) + NifModPrivData_release(data); return retval; } |