]> gitweb.factorcode.org Git - factor.git/commitdiff
vm: restore sigaltstack setup on unix
authorJoe Groff <arcata@gmail.com>
Thu, 3 Nov 2011 18:50:23 +0000 (11:50 -0700)
committerJoe Groff <arcata@gmail.com>
Thu, 3 Nov 2011 18:57:43 +0000 (11:57 -0700)
#ifdef __OpenBSD__ is different from #ifndef __OpenBSD

vm/os-unix.cpp

index 41b3b13c1a1ab4b85830a269228822f7ab9d6c41..30924c6bfe47ce40ca0ba40ff678dc9766afe6ff 100755 (executable)
@@ -257,6 +257,16 @@ static void init_sigaction_with_handler(struct sigaction *act,
 
 void factor_vm::unix_init_signals()
 {
+       signal_callstack_seg = new segment(callstack_size,false);
+
+       stack_t signal_callstack;
+       signal_callstack.ss_sp = (char *)signal_callstack_seg->start;
+       signal_callstack.ss_size = signal_callstack_seg->size;
+       signal_callstack.ss_flags = 0;
+
+       if(sigaltstack(&signal_callstack,(stack_t *)NULL) < 0)
+               fatal_error("sigaltstack() failed",0);
+
        struct sigaction memory_sigaction;
        struct sigaction synchronous_sigaction;
        struct sigaction enqueue_sigaction;