about summary refs log tree commit diff stats
path: root/src/libtools
diff options
context:
space:
mode:
authorptitSeb <seebastien.chev@gmail.com>2023-08-27 11:35:04 +0200
committerptitSeb <seebastien.chev@gmail.com>2023-08-27 11:35:04 +0200
commit5d921acd7d7a56c4b3f660ddd7a5d0b3f20f5564 (patch)
tree5171393dc0c1c8dd6ed06d728ce8bcacb0aa2766 /src/libtools
parentaa051b662e3a0e8c80e7b6373d35e22da3c42d79 (diff)
downloadbox64-5d921acd7d7a56c4b3f660ddd7a5d0b3f20f5564.tar.gz
box64-5d921acd7d7a56c4b3f660ddd7a5d0b3f20f5564.zip
[DYNAREC] Do not use dynarec in signal handling unless CUSTOM_MALLOC for Dynarec is defined (so off for now, to avoid random lockup on libcef and other complex programs)
Diffstat (limited to 'src/libtools')
-rw-r--r--src/libtools/signals.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libtools/signals.c b/src/libtools/signals.c
index e47a3dac..b20c04f3 100644
--- a/src/libtools/signals.c
+++ b/src/libtools/signals.c
@@ -290,6 +290,11 @@ uint64_t RunFunctionHandler(int* exit, int dynarec, x64_ucontext_t* sigcontext,
     trace_start = 0; trace_end = 1; // disabling trace, globably for now...
 #endif
 #endif
+#ifndef USE_CUSTOM_MEM
+    // because a signal can interupt a malloc-like function
+    // Dynarec cannot be used in signal handling unless custom malloc is used
+    dynarec = 0;
+#endif
 
     x64emu_t *emu = thread_get_emu();
     #ifdef DYNAREC