summaryrefslogtreecommitdiff
path: root/linux/arch.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux/arch.c')
-rw-r--r--linux/arch.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/linux/arch.c b/linux/arch.c
index d3fd0cc3..cda074f1 100644
--- a/linux/arch.c
+++ b/linux/arch.c
@@ -62,10 +62,8 @@ static __thread jmp_buf env;
HF_ATTR_NO_SANITIZE_ADDRESS
HF_ATTR_NO_SANITIZE_MEMORY
-static int arch_cloneFunc(void* arg HF_ATTR_UNUSED) {
+__attribute__((noreturn)) static int arch_cloneFunc(void* arg HF_ATTR_UNUSED) {
longjmp(env, 1);
- abort();
- return 0;
}
/* Avoid problem with caching of PID/TID in glibc */
@@ -207,6 +205,7 @@ void arch_prepareParentAfterFork(run_t* run) {
}
}
+ arch_perfClose(run);
if (!arch_perfOpen(run)) {
LOG_F("Couldn't open perf event for pid=%d", (int)run->pid);
}
@@ -299,9 +298,6 @@ void arch_reapChild(run_t* run) {
}
}
- if (run->pid == 0) {
- arch_perfClose(run);
- }
arch_perfAnalyze(run);
}