pthread_mutex_lock(thread->state_lock);
thread->state = state;
pthread_cond_broadcast(thread->state_cond);
pthread_mutex_unlock(thread->state_lock);
pthread_mutex_lock(thread->state_lock);
thread->state = state;
pthread_cond_broadcast(thread->state_cond);
pthread_mutex_unlock(thread->state_lock);
pthread_mutex_lock(thread->state_lock);
while (thread->state == state)
pthread_cond_wait(thread->state_cond, thread->state_lock);
pthread_mutex_unlock(thread->state_lock);
pthread_mutex_lock(thread->state_lock);
while (thread->state == state)
pthread_cond_wait(thread->state_cond, thread->state_lock);
pthread_mutex_unlock(thread->state_lock);
#ifdef LISP_FEATURE_SB_THREAD
if(thread && sym->tls_index) {
lispobj *r = &(((union per_thread_data *)thread)
#ifdef LISP_FEATURE_SB_THREAD
if(thread && sym->tls_index) {
lispobj *r = &(((union per_thread_data *)thread)
(pointer_sized_uint_t)(tagged_symbol_pointer-OTHER_POINTER_LOWTAG);
#ifdef LISP_FEATURE_SB_THREAD
return ((union per_thread_data *)thread)
(pointer_sized_uint_t)(tagged_symbol_pointer-OTHER_POINTER_LOWTAG);
#ifdef LISP_FEATURE_SB_THREAD
return ((union per_thread_data *)thread)
#ifdef LISP_FEATURE_SB_THREAD
if(thread && sym->tls_index) {
lispobj *pr= &(((union per_thread_data *)thread)
#ifdef LISP_FEATURE_SB_THREAD
if(thread && sym->tls_index) {
lispobj *pr= &(((union per_thread_data *)thread)
struct symbol *sym= (struct symbol *)
(pointer_sized_uint_t)(tagged_symbol_pointer-OTHER_POINTER_LOWTAG);
((union per_thread_data *)thread)
struct symbol *sym= (struct symbol *)
(pointer_sized_uint_t)(tagged_symbol_pointer-OTHER_POINTER_LOWTAG);
((union per_thread_data *)thread)
((thread)->binding_stack_pointer)
#define set_binding_stack_pointer(thread,value) \
((thread)->binding_stack_pointer = (lispobj *)(value))
((thread)->binding_stack_pointer)
#define set_binding_stack_pointer(thread,value) \
((thread)->binding_stack_pointer = (lispobj *)(value))
+#define access_control_stack_pointer(thread) \
+ ((thread)->control_stack_pointer)
+# if !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64)
+#define access_control_frame_pointer(thread) \
+ ((thread)->control_frame_pointer)
+# endif
#elif defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64)
#define get_binding_stack_pointer(thread) \
SymbolValue(BINDING_STACK_POINTER, thread)
#define set_binding_stack_pointer(thread,value) \
SetSymbolValue(BINDING_STACK_POINTER, (lispobj)(value), thread)
#elif defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64)
#define get_binding_stack_pointer(thread) \
SymbolValue(BINDING_STACK_POINTER, thread)
#define set_binding_stack_pointer(thread,value) \
SetSymbolValue(BINDING_STACK_POINTER, (lispobj)(value), thread)
#else
#define get_binding_stack_pointer(thread) \
(current_binding_stack_pointer)
#define set_binding_stack_pointer(thread,value) \
(current_binding_stack_pointer = (lispobj *)(value))
#else
#define get_binding_stack_pointer(thread) \
(current_binding_stack_pointer)
#define set_binding_stack_pointer(thread,value) \
(current_binding_stack_pointer = (lispobj *)(value))