X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Fthread.c;h=262e64283fbdce3a374dc1546d9f377b1e97ca72;hb=b43b6e70ce48d959d77f7f56be9d11aa101fdd7d;hp=a08c2ad1565c8aa8e21db891180ad8fd5f0dcaf2;hpb=b66385e2031fc2cac17dd129df0af400beb48a22;p=sbcl.git diff --git a/src/runtime/thread.c b/src/runtime/thread.c index a08c2ad..262e642 100644 --- a/src/runtime/thread.c +++ b/src/runtime/thread.c @@ -224,6 +224,7 @@ new_thread_trampoline(struct thread *th) { lispobj function; int result, lock_ret; + FSHOW((stderr,"/creating thread %lu\n", thread_self())); function = th->no_tls_value_marker; th->no_tls_value_marker = NO_TLS_VALUE_MARKER_WIDETAG; @@ -245,6 +246,9 @@ new_thread_trampoline(struct thread *th) gc_assert(lock_ret == 0); result = funcall0(function); + + /* Block GC */ + block_blockable_signals(); th->state=STATE_DEAD; /* SIG_STOP_FOR_GC is blocked and GC might be waiting for this