X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fthread.c;h=037756207433b060bb25151004dfd2d13d85fd77;hb=6ddaf294e5a7e3b1792ed1d9c342894c38538773;hp=117e3ec1bcb49a6a5a104dfc3779bd3cd4271630;hpb=862c0325616a991a5bd7b50d79f7176d2115493b;p=sbcl.git diff --git a/src/runtime/thread.c b/src/runtime/thread.c index 117e3ec..0377562 100644 --- a/src/runtime/thread.c +++ b/src/runtime/thread.c @@ -174,12 +174,14 @@ create_thread_struct(lispobj initial_function) { int i; for(i=0;i<(dynamic_values_bytes/sizeof(lispobj));i++) per_thread->dynamic_values[i]=NO_TLS_VALUE_MARKER_WIDETAG; - if(SymbolValue(FREE_TLS_INDEX,0)==UNBOUND_MARKER_WIDETAG) + if(SymbolValue(FREE_TLS_INDEX,0)==UNBOUND_MARKER_WIDETAG) { SetSymbolValue (FREE_TLS_INDEX, make_fixnum(MAX_INTERRUPTS+ sizeof(struct thread)/sizeof(lispobj)), 0); + SetSymbolValue(TLS_INDEX_LOCK,make_fixnum(0),0); + } #define STATIC_TLS_INIT(sym,field) \ ((struct symbol *)(sym-OTHER_POINTER_LOWTAG))->tls_index= \ make_fixnum(THREAD_SLOT_OFFSET_WORDS(field))