static void
remove_thread(pTHX_ Thread t)
{
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
DEBUG_S(WITH_THR(PerlIO_printf(Perl_debug_log,
"%p: remove_thread %p\n", thr, t)));
MUTEX_LOCK(&PL_threads_mutex);
static THREAD_RET_TYPE
threadstart(void *arg)
{
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
#ifdef FAKE_THREADS
Thread savethread = thr;
LOGOP myop;
SvREFCNT_dec(PL_ofs_sv);
SvREFCNT_dec(PL_rs);
- SvREFCNT_dec(PL_nrs);
SvREFCNT_dec(PL_statname);
SvREFCNT_dec(PL_errors);
Safefree(PL_screamfirst);
static SV *
newthread (pTHX_ SV *startsv, AV *initargs, char *classname)
{
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
dSP;
Thread savethread;
int i;
AV * av = NO_INIT
int i = NO_INIT
PPCODE:
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
if (t == thr)
croak("Attempt to join self");
DEBUG_S(PerlIO_printf(Perl_debug_log, "%p: joining %p (state %u)\n",
detach(t)
Thread t
CODE:
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
DEBUG_S(PerlIO_printf(Perl_debug_log, "%p: detaching %p (state %u)\n",
thr, t, ThrSTATE(t)));
MUTEX_LOCK(&t->mutex);
flags(t)
Thread t
PPCODE:
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
PUSHs(sv_2mortal(newSViv(t->flags)));
#endif
done(t)
Thread t
PPCODE:
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
PUSHs(t->thr_done ? &PL_sv_yes : &PL_sv_no);
#endif
PREINIT:
SV *sv;
PPCODE:
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
sv = newSViv(thr->tid);
sv_magic(sv, thr->oursv, '~', 0, 0);
SvMAGIC(sv)->mg_private = Thread_MAGIC_SIGNATURE;
tid(t)
Thread t
CODE:
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
MUTEX_LOCK(&t->mutex);
RETVAL = t->tid;
MUTEX_UNLOCK(&t->mutex);
yield()
CODE:
{
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
YIELD;
#endif
}
SV * sv
MAGIC * mg = NO_INIT
CODE:
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
if (SvROK(sv))
sv = SvRV(sv);
SV * sv
MAGIC * mg = NO_INIT
CODE:
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
if (SvROK(sv))
sv = SvRV(sv);
SV * sv
MAGIC * mg = NO_INIT
CODE:
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
if (SvROK(sv))
sv = SvRV(sv);
SV ** svp;
int n = 0;
PPCODE:
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
av = newAV();
/*
* Iterate until we have enough dynamic storage for all threads.
data(classname = "Thread::Specific")
char * classname
PPCODE:
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
if (AvFILL(thr->specific) == -1) {
GV *gv = gv_fetchpv("Thread::Specific::FIELDS", TRUE, SVt_PVHV);
av_store(thr->specific, 0, newRV((SV*)GvHV(gv)));