X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Falloc.c;h=eeb827f1a8b8aeec2527dd9a813a9d955b2a8dfa;hb=d25e3478acccec70402ff32554669a982be8e281;hp=500bfb040d626e2d7e6aeccb2bc65a39b6e25a07;hpb=f12b298a4ce9090470000360b49523e56475a680;p=sbcl.git diff --git a/src/runtime/alloc.c b/src/runtime/alloc.c index 500bfb0..eeb827f 100644 --- a/src/runtime/alloc.c +++ b/src/runtime/alloc.c @@ -40,11 +40,10 @@ pa_alloc(int bytes, int page_type_flag) lispobj *result; struct thread *th = arch_os_get_current_thread(); - /* SIG_STOP_FOR_GC needs to be enabled before we can call lisp: - * otherwise two threads racing here may deadlock: the other will - * wait on the GC lock, and the other cannot stop the first - * one... */ - check_gc_signals_unblocked_or_lose(); + /* SIG_STOP_FOR_GC must be unblocked: else two threads racing here + * may deadlock: one will wait on the GC lock, and the other + * cannot stop the first one... */ + check_gc_signals_unblocked_or_lose(0); /* FIXME: OOAO violation: see arch_pseudo_* */ set_pseudo_atomic_atomic(th); @@ -94,7 +93,7 @@ pa_alloc(int bytes, int page_type_flag) /* This is not pseudo atomic at all, but is called only from * interrupt safe places like interrupt handlers. MG - * 2005-08-09 */ - check_deferrables_blocked_or_lose(); + check_deferrables_blocked_or_lose(0); result = dynamic_space_free_pointer;