X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fruntime.c;h=efefc8e11abf05a733a9f0f55317d9a776fa9ca9;hb=b767eae48831153473226b985511c8f7a3ef98c5;hp=a170ddf963dfb97c630f9c09535e52dabefa52fd;hpb=99bcb3a92b44ce343586f8bd7c717d665f31f4ad;p=sbcl.git diff --git a/src/runtime/runtime.c b/src/runtime/runtime.c index a170ddf..efefc8e 100644 --- a/src/runtime/runtime.c +++ b/src/runtime/runtime.c @@ -48,19 +48,21 @@ #endif /* SIGINT handler that invokes the monitor (for when Lisp isn't up to it) */ - -static void sigint_handler(int signal, siginfo_t *info, void *void_context) +static void +sigint_handler(int signal, siginfo_t *info, void *void_context) { - printf("\nSIGINT hit at 0x%08lX\n", - (unsigned long) *os_context_pc_addr(void_context)); - ldb_monitor(); + lose("\nSIGINT hit at 0x%08lX\n", + (unsigned long) *os_context_pc_addr(void_context)); } /* (This is not static, because we want to be able to call it from * Lisp land.) */ -void sigint_init(void) +void +sigint_init(void) { + SHOW("entering sigint_init()"); install_handler(SIGINT, sigint_handler); + SHOW("leaving sigint_init()"); } /* @@ -241,7 +243,7 @@ More information on SBCL is available at . define_var("nil", NIL, 1); define_var("t", T, 1); - set_lossage_handler(ldb_monitor); + set_lossage_handler(monitor_or_something); #if 0 os_init(); @@ -254,21 +256,12 @@ More information on SBCL is available at . if (initial_function == NIL) { lose("couldn't find initial function"); } + SHOW("freeing core"); free(core); #if defined GENCGC gencgc_pickup_dynamic(); #else -#if defined WANT_CGC && defined X86_CGC_ACTIVE_P - { - extern int use_cgc_p; - lispobj x = SymbolValue(X86_CGC_ACTIVE_P); - if (x != type_UnboundMarker && x != NIL) { - /* Enable allocator. */ - use_cgc_p = 1; - } - } -#endif #endif #ifdef BINDING_STACK_POINTER @@ -285,17 +278,20 @@ More information on SBCL is available at . #ifdef PSEUDO_ATOMIC_ATOMIC /* Turn on pseudo atomic for when we call into Lisp. */ + SHOW("turning on pseudo atomic"); SetSymbolValue(PSEUDO_ATOMIC_ATOMIC, make_fixnum(1)); SetSymbolValue(PSEUDO_ATOMIC_INTERRUPTED, make_fixnum(0)); #endif /* Convert remaining argv values to something that Lisp can grok. */ + SHOW("setting POSIX-ARGV symbol value"); SetSymbolValue(POSIX_ARGV, alloc_string_list(argv)); /* Install a handler to pick off SIGINT until the Lisp system gets * far enough along to install its own handler. */ sigint_init(); + FSHOW((stderr, "/funcalling initial_function=0x%lx\n", initial_function)); funcall0(initial_function); /* initial_function() is not supposed to return. */