diff options
Diffstat (limited to 'wince/win32thread.c')
-rw-r--r-- | wince/win32thread.c | 80 |
1 files changed, 2 insertions, 78 deletions
diff --git a/wince/win32thread.c b/wince/win32thread.c index 4675822c66..141c5d68a0 100644 --- a/wince/win32thread.c +++ b/wince/win32thread.c @@ -10,7 +10,7 @@ __declspec(thread) void *PL_current_context = NULL; void Perl_set_context(void *t) { -#if defined(USE_5005THREADS) || defined(USE_ITHREADS) +#if defined(USE_ITHREADS) # ifdef USE_DECLSPEC_THREAD Perl_current_context = t; # else @@ -24,7 +24,7 @@ Perl_set_context(void *t) void * Perl_get_context(void) { -#if defined(USE_5005THREADS) || defined(USE_ITHREADS) +#if defined(USE_ITHREADS) # ifdef USE_DECLSPEC_THREAD return Perl_current_context; # else @@ -37,79 +37,3 @@ Perl_get_context(void) return NULL; #endif } - -#ifdef USE_5005THREADS -void -Perl_init_thread_intern(struct perl_thread *athr) -{ -#ifndef USE_DECLSPEC_THREAD - - /* - * Initialize port-specific per-thread data in thr->i - * as only things we have there are just static areas for - * return values we don't _need_ to do anything but - * this is good practice: - */ - memset(&athr->i,0,sizeof(athr->i)); - -#endif -} - -void -Perl_set_thread_self(struct perl_thread *thr) -{ - /* Set thr->self. GetCurrentThread() retrurns a pseudo handle, need - this to convert it into a handle another thread can use. - */ - DuplicateHandle(GetCurrentProcess(), - GetCurrentThread(), - GetCurrentProcess(), - &thr->self, - 0, - FALSE, - DUPLICATE_SAME_ACCESS); -} - -int -Perl_thread_create(struct perl_thread *thr, thread_func_t *fn) -{ - DWORD junk; - unsigned long th; - - DEBUG_S(PerlIO_printf(Perl_debug_log, - "%p: create OS thread\n", thr)); -#ifdef USE_RTL_THREAD_API - /* See comment about USE_RTL_THREAD_API in win32thread.h */ -#if defined(__BORLANDC__) - th = _beginthreadNT(fn, /* start address */ - 0, /* stack size */ - (void *)thr, /* parameters */ - (void *)NULL, /* security attrib */ - 0, /* creation flags */ - (unsigned long *)&junk); /* tid */ - if (th == (unsigned long)-1) - th = 0; -#elif defined(_MSC_VER_) - th = _beginthreadex((void *)NULL, /* security attrib */ - 0, /* stack size */ - fn, /* start address */ - (void*)thr, /* parameters */ - 0, /* creation flags */ - (unsigned *)&junk); /* tid */ -#else /* compilers using CRTDLL.DLL only have _beginthread() */ - th = _beginthread(fn, /* start address */ - 0, /* stack size */ - (void*)thr); /* parameters */ - if (th == (unsigned long)-1) - th = 0; -#endif - thr->self = (HANDLE)th; -#else /* !USE_RTL_THREAD_API */ - thr->self = CreateThread(NULL, 0, fn, (void*)thr, 0, &junk); -#endif /* !USE_RTL_THREAD_API */ - DEBUG_S(PerlIO_printf(Perl_debug_log, - "%p: OS thread = %p, id=%ld\n", thr, thr->self, junk)); - return thr->self ? 0 : -1; -} -#endif - |