diff options
author | H.Merijn Brand <h.m.brand@xs4all.nl> | 2002-10-19 14:10:21 +0000 |
---|---|---|
committer | H.Merijn Brand <h.m.brand@xs4all.nl> | 2002-10-19 14:10:21 +0000 |
commit | 3db8f154c4c6e098a5a0bdf7932e8f86fbd2c451 (patch) | |
tree | 304393fdb48236335e35a83047fba6223e13f602 /thread.h | |
parent | efc41c8ef9279ab1e5f723c2c73a85333a96e0e2 (diff) | |
download | perl-3db8f154c4c6e098a5a0bdf7932e8f86fbd2c451.tar.gz |
Happy chainsaw stories; The removal of the 5005 threads
Still imcomplete. Configure will follow
p4raw-id: //depot/perl@18030
Diffstat (limited to 'thread.h')
-rw-r--r-- | thread.h | 59 |
1 files changed, 2 insertions, 57 deletions
@@ -7,7 +7,7 @@ * */ -#if defined(USE_5005THREADS) || defined(USE_ITHREADS) +#if defined(USE_ITHREADS) #if defined(VMS) #include <builtins.h> @@ -326,62 +326,7 @@ # define THREAD_RET_CAST(p) ((void *)(p)) #endif /* THREAD_RET */ -#if defined(USE_5005THREADS) - -/* Accessor for per-thread SVs */ -# define THREADSV(i) (thr->threadsvp[i]) - -/* - * LOCK_SV_MUTEX and UNLOCK_SV_MUTEX are performance-critical. Here, we - * try only locking them if there may be more than one thread in existence. - * Systems with very fast mutexes (and/or slow conditionals) may wish to - * remove the "if (threadnum) ..." test. - * XXX do NOT use C<if (PL_threadnum) ...> -- it sets up race conditions! - */ -# define LOCK_SV_MUTEX MUTEX_LOCK(&PL_sv_mutex) -# define UNLOCK_SV_MUTEX MUTEX_UNLOCK(&PL_sv_mutex) -# define LOCK_STRTAB_MUTEX MUTEX_LOCK(&PL_strtab_mutex) -# define UNLOCK_STRTAB_MUTEX MUTEX_UNLOCK(&PL_strtab_mutex) -# define LOCK_CRED_MUTEX MUTEX_LOCK(&PL_cred_mutex) -# define UNLOCK_CRED_MUTEX MUTEX_UNLOCK(&PL_cred_mutex) -# define LOCK_FDPID_MUTEX MUTEX_LOCK(&PL_fdpid_mutex) -# define UNLOCK_FDPID_MUTEX MUTEX_UNLOCK(&PL_fdpid_mutex) -# define LOCK_SV_LOCK_MUTEX MUTEX_LOCK(&PL_sv_lock_mutex) -# define UNLOCK_SV_LOCK_MUTEX MUTEX_UNLOCK(&PL_sv_lock_mutex) - -/* Values and macros for thr->flags */ -#define THRf_STATE_MASK 7 -#define THRf_R_JOINABLE 0 -#define THRf_R_JOINED 1 -#define THRf_R_DETACHED 2 -#define THRf_ZOMBIE 3 -#define THRf_DEAD 4 - -#define THRf_DID_DIE 8 - -/* ThrSTATE(t) and ThrSETSTATE(t) must only be called while holding t->mutex */ -#define ThrSTATE(t) ((t)->flags & THRf_STATE_MASK) -#define ThrSETSTATE(t, s) STMT_START { \ - (t)->flags &= ~THRf_STATE_MASK; \ - (t)->flags |= (s); \ - DEBUG_S(PerlIO_printf(Perl_debug_log, \ - "thread %p set to state %d\n", (t), (s))); \ - } STMT_END - -typedef struct condpair { - perl_mutex mutex; /* Protects all other fields */ - perl_cond owner_cond; /* For when owner changes at all */ - perl_cond cond; /* For cond_signal and cond_broadcast */ - Thread owner; /* Currently owning thread */ -} condpair_t; - -#define MgMUTEXP(mg) (&((condpair_t *)(mg->mg_ptr))->mutex) -#define MgOWNERCONDP(mg) (&((condpair_t *)(mg->mg_ptr))->owner_cond) -#define MgCONDP(mg) (&((condpair_t *)(mg->mg_ptr))->cond) -#define MgOWNER(mg) ((condpair_t *)(mg->mg_ptr))->owner - -#endif /* USE_5005THREADS */ -#endif /* USE_5005THREADS || USE_ITHREADS */ +#endif /* USE_ITHREADS */ #ifndef MUTEX_LOCK # define MUTEX_LOCK(m) |