this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Update darlingserver to allow handling signals with an active call

+8 -3
+8 -3
src/kernel/emulation/linux/signal/sigexc.c
··· 222 222 223 223 void sigexc_handler(int linux_signum, struct linux_siginfo* info, struct linux_ucontext* ctxt) 224 224 { 225 + dserver_rpc_sigexc_enter(); 226 + 225 227 kern_printf("sigexc_handler(%d, %p, %p)\n", linux_signum, info, ctxt); 226 228 227 229 228 230 if (linux_signum == LINUX_SIGCONT) 229 - return; 231 + goto out; 230 232 231 233 int bsd_signum = signum_linux_to_bsd(linux_signum); 232 234 if (bsd_signum <= 0) 233 235 { 234 236 kern_printf("sigexc: Unmapped signal!\n"); 235 - return; 237 + goto out; 236 238 } 237 239 238 240 #ifdef __x86_64__ ··· 265 267 if (!bsd_signum) 266 268 { 267 269 kern_printf("sigexc: drop signal\n"); 268 - return; 270 + goto out; 269 271 } 270 272 271 273 linux_signum = signum_bsd_to_linux(bsd_signum); ··· 316 318 } 317 319 318 320 kern_printf("sigexc: handler (%d) returning\n", linux_signum); 321 + 322 + out: 323 + dserver_rpc_sigexc_exit(); 319 324 } 320 325 321 326 #define DUMPREG(regname) kern_printf("sigexc: " #regname ": 0x%llx\n", regs->regname);