diff options
Diffstat (limited to 'libguile/threads.h')
-rw-r--r-- | libguile/threads.h | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/libguile/threads.h b/libguile/threads.h index 53982187e..6b85baf52 100644 --- a/libguile/threads.h +++ b/libguile/threads.h @@ -4,7 +4,7 @@ #define SCM_THREADS_H /* Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2006, - * 2007, 2008, 2009, 2011, 2013 Free Software Foundation, Inc. + * 2007, 2008, 2009, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -28,8 +28,8 @@ #include "libguile/procs.h" #include "libguile/throw.h" #include "libguile/root.h" +#include "libguile/dynstack.h" #include "libguile/iselect.h" -#include "libguile/dynwind.h" #include "libguile/continuations.h" #if SCM_USE_PTHREAD_THREADS @@ -72,15 +72,16 @@ typedef struct scm_i_thread { scm_i_pthread_cond_t sleep_cond; int sleep_fd, sleep_pipe[2]; - /* XXX: These two fields used to hold information about the BDW-GC - mark stack during the mark phase. They are no longer used. */ - void *current_mark_stack_ptr; - void *current_mark_stack_limit; + /* Thread-local freelists; see gc-inline.h. */ + void **freelists; + void **pointerless_freelists; /* Other thread local things. */ SCM dynamic_state; - SCM dynwinds; + + /* The dynamic stack. */ + scm_t_dynstack dynstack; /* For system asyncs. */ @@ -108,7 +109,7 @@ typedef struct scm_i_thread { SCM_STACKITEM *continuation_base; /* For keeping track of the stack and registers. */ - SCM vm; + struct scm_vm *vp; SCM_STACKITEM *base; scm_i_jmp_buf regs; #ifdef __ia64__ @@ -145,9 +146,6 @@ SCM_INTERNAL void scm_init_threads_default_dynamic_state (void); SCM_INTERNAL void scm_i_dynwind_pthread_mutex_lock_block_asyncs (scm_i_pthread_mutex_t *mutex); -#define SCM_THREAD_SWITCHING_CODE \ - do { } while (0) - SCM_API SCM scm_call_with_new_thread (SCM thunk, SCM handler); SCM_API SCM scm_yield (void); SCM_API SCM scm_cancel_thread (SCM t); @@ -205,12 +203,8 @@ SCM_INTERNAL SCM_THREAD_LOCAL scm_i_thread *scm_i_current_thread; # endif /* !SCM_HAVE_THREAD_STORAGE_CLASS */ -# define scm_i_dynwinds() (SCM_I_CURRENT_THREAD->dynwinds) -# define scm_i_set_dynwinds(w) (SCM_I_CURRENT_THREAD->dynwinds = (w)) - #endif /* BUILDING_LIBGUILE */ - SCM_INTERNAL scm_i_pthread_mutex_t scm_i_misc_mutex; /* Convenience functions for working with the pthread API in guile |