about summary refs log tree commit diff stats
path: root/src/wrapped
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-07-30 22:12:30 +0200
committerptitSeb <sebastien.chev@gmail.com>2023-07-30 22:12:30 +0200
commitfb0e8ee9c6237993c393f3737e528199be41c23c (patch)
tree77f2805581337ebd007d72399270d5cd0e2956b7 /src/wrapped
parent6a8cc8ace371c0a683fb3f57048be6b642a56187 (diff)
downloadbox64-fb0e8ee9c6237993c393f3737e528199be41c23c.tar.gz
box64-fb0e8ee9c6237993c393f3737e528199be41c23c.zip
Change again a bit how jmpbuffer and resuming of signal is handled
Diffstat (limited to 'src/wrapped')
-rw-r--r--src/wrapped/wrappedlibc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c
index 59953d9c..45758e32 100644
--- a/src/wrapped/wrappedlibc.c
+++ b/src/wrapped/wrappedlibc.c
@@ -2519,6 +2519,9 @@ EXPORT int32_t my___sigsetjmp(x64emu_t* emu, /*struct __jmp_buf_tag __env[1]*/vo
             ((__jmp_buf_tag_t*)p)->__mask_was_saved = 1;
     } else
         ((__jmp_buf_tag_t*)p)->__mask_was_saved = 0;
+    // quit emulation loop and create a new jumpbuf if needed
+    emu->need_jmpbuf = 1;
+    emu->quit = 1;
     return 0;
 }
 EXPORT int32_t my_sigsetjmp(x64emu_t* emu, /*struct __jmp_buf_tag __env[1]*/void *p, int savesigs)