X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fthread.c;h=1889213ef3cf0bc72bf9214adcd78e469598a400;hb=961c6bf2eda5d492d5dbb7e275fe4e0931f7adf8;hp=46f8f7de1fd9a7117e1fdf236647f2063ee9d41e;hpb=37d3828773e2f847bb1ed7522b0af4fb8e736fc8;p=sbcl.git diff --git a/src/runtime/thread.c b/src/runtime/thread.c index 46f8f7d..1889213 100644 --- a/src/runtime/thread.c +++ b/src/runtime/thread.c @@ -535,7 +535,7 @@ attach_os_thread(init_thread_data *scribble) * tempting to just perform such unsafe allocation though. So let's * at least try to suppress GC before consing, and hope that it * works: */ - SetSymbolValue(GC_INHIBIT, T, th); + bind_variable(GC_INHIBIT, T, th); uword_t stacksize = (uword_t) th->control_stack_end - (uword_t) th->control_stack_start; @@ -695,7 +695,7 @@ create_thread_struct(lispobj initial_function) { th->state_not_stopped_waitcount = 0; #endif th->state=STATE_RUNNING; -#ifdef LISP_FEATURE_STACK_GROWS_DOWNWARD_NOT_UPWARD +#ifdef ALIEN_STACK_GROWS_DOWNWARD th->alien_stack_pointer=((void *)th->alien_stack_start + ALIEN_STACK_SIZE-N_WORD_BYTES); #else @@ -835,8 +835,13 @@ boolean create_os_thread(struct thread *th,os_thread_t *kid_tid) #if defined(LISP_FEATURE_WIN32) (pthread_attr_setstacksize(th->os_attr, thread_control_stack_size)) || #else +# if defined(LISP_FEATURE_C_STACK_IS_CONTROL_STACK) (pthread_attr_setstack(th->os_attr,th->control_stack_start, thread_control_stack_size)) || +# else + (pthread_attr_setstack(th->os_attr,th->alien_stack_start, + ALIEN_STACK_SIZE)) || +# endif #endif (retcode = pthread_create (kid_tid,th->os_attr,(void *(*)(void *))new_thread_trampoline,th))) {