In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/ef4abe7673cc0b19ffd81c9a42f79de20a52ac87?hp=31a53e79025eb5944553e671a615e60f384fe743>
- Log ----------------------------------------------------------------- commit ef4abe7673cc0b19ffd81c9a42f79de20a52ac87 Author: Nicholas Clark <[email protected]> Date: Mon May 20 17:55:46 2013 +0200 Remove fakethr.h and eliminate all references to it and FAKE_THREADS fakethr.h and FAKE_THREADS were for a "green" threads implementation of 5005threads. 5005threads itself is long gone, and it's not clear that -DFAKE_THREADS *ever* built correctly. Certainly it did not work for the 5.005 release, and it did not work at the time of the commits for the initial checkin. The closest that it seems to have been to working is around commit c6ee37c52f2ca9e5 (Dec 1997), where the headers no longer contained errors, but perl.c failed to compile. ----------------------------------------------------------------------- Summary of changes: MANIFEST | 1 - configpm | 1 - dist/threads-shared/lib/threads/shared.pm | 2 +- dist/threads-shared/shared.xs | 4 +- fakethr.h | 75 ----------------------------- perl.h | 9 +--- vms/descrip_mms.template | 13 +---- 7 files changed, 6 insertions(+), 99 deletions(-) delete mode 100644 fakethr.h diff --git a/MANIFEST b/MANIFEST index 5916b98..32b958c 100644 --- a/MANIFEST +++ b/MANIFEST @@ -3882,7 +3882,6 @@ ext/XS-Typemap/t/Typemap.t test that typemaps work ext/XS-Typemap/Typemap.pm XS::Typemap extension ext/XS-Typemap/Typemap.xs XS::Typemap extension fakesdio.h stdio in terms of PerlIO -fakethr.h Fake threads header feature.h Feature header form.h Public declarations for formats generate_uudmap.c Generate uudmap.h, the uuencode decoding map diff --git a/configpm b/configpm index 0be40f9..33137c6 100755 --- a/configpm +++ b/configpm @@ -82,7 +82,6 @@ my @header_files = qw(EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h regcomp.h regexp.h regnodes.h scope.h sv.h thread.h utf8.h util.h); -# No point in adding fakethr.h, as it no longer works push @header_files, $^O eq 'VMS' ? 'vmsish.h' : qw(dosish.h perliol.h time64.h unixish.h); diff --git a/dist/threads-shared/lib/threads/shared.pm b/dist/threads-shared/lib/threads/shared.pm index ecbc1fd..e5c3669 100644 --- a/dist/threads-shared/lib/threads/shared.pm +++ b/dist/threads-shared/lib/threads/shared.pm @@ -7,7 +7,7 @@ use warnings; use Scalar::Util qw(reftype refaddr blessed); -our $VERSION = '1.43'; +our $VERSION = '1.44'; my $XS_VERSION = $VERSION; $VERSION = eval $VERSION; diff --git a/dist/threads-shared/shared.xs b/dist/threads-shared/shared.xs index 3dccc39..d3e859d 100644 --- a/dist/threads-shared/shared.xs +++ b/dist/threads-shared/shared.xs @@ -612,7 +612,7 @@ S_abs_2_rel_milli(double abs) bool Perl_sharedsv_cond_timedwait(perl_cond *cond, perl_mutex *mut, double abs) { -#if defined(NETWARE) || defined(FAKE_THREADS) || defined(I_MACH_CTHREADS) +#if defined(NETWARE) || defined(I_MACH_CTHREADS) Perl_croak_nocontext("cond_timedwait not supported on this platform"); #else # ifdef WIN32 @@ -671,7 +671,7 @@ Perl_sharedsv_cond_timedwait(perl_cond *cond, perl_mutex *mut, double abs) return (got_it); # endif /* OS2 */ # endif /* WIN32 */ -#endif /* NETWARE || FAKE_THREADS || I_MACH_CTHREADS */ +#endif /* NETWARE || I_MACH_CTHREADS */ } diff --git a/fakethr.h b/fakethr.h deleted file mode 100644 index 643806d..0000000 --- a/fakethr.h +++ /dev/null @@ -1,75 +0,0 @@ -/* fakethr.h - * - * Copyright (C) 1999, by Larry Wall and others - * - * You may distribute under the terms of either the GNU General Public - * License or the Artistic License, as specified in the README file. - * - */ - -typedef int perl_mutex; -typedef int perl_key; - -typedef struct perl_thread *perl_os_thread; -/* With fake threads, thr is global(ish) so we don't need dTHR */ -#define dTHR extern int errno - -struct perl_wait_queue { - struct perl_thread * thread; - struct perl_wait_queue * next; -}; -typedef struct perl_wait_queue *perl_cond; - -/* Ask thread.h to include our per-thread extras */ -#define HAVE_THREAD_INTERN -struct thread_intern { - perl_os_thread next_run, prev_run; /* Linked list of runnable threads */ - perl_cond wait_queue; /* Wait queue that we are waiting on */ - IV private; /* Holds data across time slices */ - I32 savemark; /* Holds MARK for thread join values */ -}; - -#define init_thread_intern(t) \ - STMT_START { \ - t->self = (t); \ - (t)->i.next_run = (t)->i.prev_run = (t); \ - (t)->i.wait_queue = 0; \ - (t)->i.private = 0; \ - } STMT_END - -/* - * Note that SCHEDULE() is only callable from pp code (which - * must be expecting to be restarted). We'll have to do - * something a bit different for XS code. - */ - -#define SCHEDULE() return schedule(), PL_op - -#define MUTEX_LOCK(m) -#define MUTEX_UNLOCK(m) -#define MUTEX_INIT(m) -#define MUTEX_DESTROY(m) -#define COND_INIT(c) perl_cond_init(c) -#define COND_SIGNAL(c) perl_cond_signal(c) -#define COND_BROADCAST(c) perl_cond_broadcast(c) -#define COND_WAIT(c, m) \ - STMT_START { \ - perl_cond_wait(c); \ - SCHEDULE(); \ - } STMT_END -#define COND_DESTROY(c) - -#define THREAD_CREATE(t, f) f((t)) -#define THREAD_POST_CREATE(t) NOOP - -#define YIELD NOOP - -/* - * Local variables: - * c-indentation-style: bsd - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * - * ex: set ts=8 sts=4 sw=4 et: - */ diff --git a/perl.h b/perl.h index 87e7f0f..1f6e4e4 100644 --- a/perl.h +++ b/perl.h @@ -2670,9 +2670,6 @@ freeing any remaining Perl interpreters. # ifdef NETWARE # include <nw5thread.h> # else -# ifdef FAKE_THREADS -# include "fakethr.h" -# else # ifdef WIN32 # include <win32thread.h> # else @@ -2699,8 +2696,7 @@ typedef pthread_key_t perl_key; # endif /* I_MACH_CTHREADS */ # endif /* OS2 */ # endif /* WIN32 */ -# endif /* FAKE_THREADS */ -#endif /* NETWARE */ +# endif /* NETWARE */ #endif /* USE_ITHREADS */ #if defined(WIN32) @@ -4513,9 +4509,6 @@ EXTCONST char PL_bincompat_options[] = # ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP " DEBUG_LEAKING_SCALARS_FORK_DUMP" # endif -# ifdef FAKE_THREADS - " FAKE_THREADS" -# endif # ifdef FCRYPT " FCRYPT" # endif diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index 20da73c..af27c3c 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -151,14 +151,6 @@ THRLIBS2 = sys$share:cma$open_lib_shr/share|sys$share:cma$open_rtl/share .endif .endif -.ifdef FAKETHREADED -THREADDEF = -THREADH = fakethr.h -THREAD = THREAD -.else -THREADH = -.endif - .ifdef MTU .ifdef MTK MTHREADLINKFLAGS = /THREADS=(MULTIPLE_KERNEL,UPCALLS) @@ -255,9 +247,8 @@ h2 = iperlsys.h keywords.h mydtrace.h mg.h mg_vtable.h nostdio.h op.h h3 = op_reg_common.h opcode.h opnames.h overload.h pad.h parser.h patchlevel.h h4 = perl.h perlapi.h perlio.h perlsdio.h perlvars.h perly.h h5 = pp.h pp_proto.h proto.h regcomp.h regexp.h regnodes.h scope.h -h6 = sv.h thread.h utf8.h util.h vmsish.h warnings.h -h7 = xsub.h $(THREADH) -h = $(h0) $(h1) $(h2) $(h3) $(h4) $(h5) $(h6) $(h7) +h6 = sv.h thread.h utf8.h util.h vmsish.h warnings.h xsub.h +h = $(h0) $(h1) $(h2) $(h3) $(h4) $(h5) $(h6) acopt = $(ARCHCORE)perlshr_attr.opt $(ARCHCORE)$(DBG)perlshr_bld.opt ac = archcore_includes.ts $(acopt) -- Perl5 Master Repository
