We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent f4ce0bf commit ea5672dCopy full SHA for ea5672d
1 file changed
ext/signals.c
@@ -375,6 +375,20 @@ static int dd_call_prev_handler(bool flush) {
375
}
376
377
static int dd_sigterm_cleanup_thread(void *arg) {
378
+ // Block all signals to prevent delivery to this thread
379
+ sigset_t set;
380
+ sigfillset(&set);
381
+ sigprocmask(SIG_BLOCK, &set, NULL);
382
+
383
+ // Make the Go runtime believe, we are actually running on a signal stack
384
+ stack_t altstack;
385
+ altstack.ss_sp = dd_signal_async_stack;
386
+ if (altstack.ss_sp) {
387
+ altstack.ss_size = dd_signal_async_stack_size;
388
+ altstack.ss_flags = 0;
389
+ sigaltstack(&altstack, NULL);
390
+ }
391
392
return dd_call_prev_handler(true);
393
394
0 commit comments