#ifdef LISP_FEATURE_LINUX
os_restore_fp_control(context);
#endif
- if(maybe_defer_handler(interrupt_handle_now,data,
- signal,info,context))
+ if(maybe_defer_handler(interrupt_handle_now,data,signal,info,context))
return;
interrupt_handle_now(signal, info, context);
#ifdef LISP_FEATURE_DARWIN
{
os_context_t *context = (os_context_t*)void_context;
struct thread *thread=arch_os_get_current_thread();
- struct interrupt_data *data=
- thread ? thread->interrupt_data : global_interrupt_data;
+ struct interrupt_data *data=thread->interrupt_data;
#ifdef LISP_FEATURE_LINUX
os_restore_fp_control(context);
{
os_context_t *context = arch_os_get_context(&void_context);
struct thread *thread=arch_os_get_current_thread();
- struct interrupt_data *data=
- thread ? thread->interrupt_data : global_interrupt_data;
+ struct interrupt_data *data=thread->interrupt_data;
#ifdef LISP_FEATURE_LINUX
os_restore_fp_control(context);
#endif
{
os_context_t *context=(os_context_t *) void_context;
struct thread *th=arch_os_get_current_thread();
- struct interrupt_data *data=
- th ? th->interrupt_data : global_interrupt_data;
+ struct interrupt_data *data=th->interrupt_data;
if(!foreign_function_call_active && gc_trigger_hit(signal, info, context)){
struct thread *thread=arch_os_get_current_thread();
{
struct sigaction sa;
struct thread *th=arch_os_get_current_thread();
+ /* It may be before the initial thread is started. */
struct interrupt_data *data=
th ? th->interrupt_data : global_interrupt_data;
sigset_t old, new;
union interrupt_handler oldhandler;
struct thread *th=arch_os_get_current_thread();
+ /* It may be before the initial thread is started. */
struct interrupt_data *data=
th ? th->interrupt_data : global_interrupt_data;
lispobj initial_function;
+ interrupt_init();
+ block_blockable_signals();
+
setlocale(LC_ALL, "");
/* KLUDGE: os_vm_page_size is set by os_init(), and on some
gc_initialize_pointers();
- interrupt_init();
arch_install_interrupt_handlers();
os_install_interrupt_handlers();
SetSymbolValue(POSIX_ARGV, alloc_base_string_list(sbcl_argv),0);
free(sbcl_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));
create_initial_thread(initial_function);
lose("CATS. CATS ARE NICE.");