diff options
author | Nick Ing-Simmons <nik@tiuk.ti.com> | 1997-11-08 15:03:39 +0000 |
---|---|---|
committer | Nick Ing-Simmons <nik@tiuk.ti.com> | 1997-11-08 15:03:39 +0000 |
commit | 0b9678a8abcf790b88babcb35eec34072787a87f (patch) | |
tree | d50c10d5faf510d03b1fa735abc8709d93020f8b /thread.h | |
parent | 5ddb6eab5b331747cc6c97d7afbea3b5a48d2c4d (diff) | |
download | perl-0b9678a8abcf790b88babcb35eec34072787a87f.tar.gz |
Get threads working again on Win32
Root cause of fail was init_thread_intern() in
new_struct_thread() (which is called in parent thread)
clobbering dTHR of parent thread.
It is doubtfull if setting 'self' in new_struct_thread()
is 'right' but left in for now.
p4raw-id: //depot/ansiperl@213
Diffstat (limited to 'thread.h')
-rw-r--r-- | thread.h | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -128,6 +128,7 @@ struct thread *getTHR _((void)); # endif #endif + #ifndef THREAD_RET_TYPE # define THREAD_RET_TYPE void * # define THREAD_RET_CAST(p) ((void *)(p)) @@ -223,7 +224,7 @@ struct thread { perl_mutex mutex; /* For the fields others can change */ U32 tid; struct thread *next, *prev; /* Circular linked list of threads */ - + JMPENV Tstart_env; /* Top of top_env longjmp() chain */ #ifdef ADD_THREAD_INTERN struct thread_intern i; /* Platform-dependent internals */ #endif @@ -306,6 +307,7 @@ typedef struct condpair { #undef chopset #undef formtarget #undef bodytarget +#undef start_env #undef toptarget #undef top_env #undef runlevel @@ -381,6 +383,7 @@ typedef struct condpair { #define top_env (thr->Ttop_env) #define runlevel (thr->Trunlevel) +#define start_env (thr->Tstart_env) #else /* USE_THREADS is not defined */ |