Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Threading: ActiveState Perl 5.8.0

by P0w3rK!d (Pilgrim)
on May 16, 2003 at 14:55 UTC ( #258669=perlquestion: print w/replies, xml ) Need Help??

P0w3rK!d has asked for the wisdom of the Perl Monks concerning the following question:

Is the Windows distribution of ActiveState Perl 5.8.0 built with threading enabled?


Replies are listed 'Best First'.
Re: Threading: ActiveState Perl 5.8.0
by Limbic~Region (Chancellor) on May 16, 2003 at 14:57 UTC
    There are a bunch of ways to find out, I use perl -V

    My build is for Ithreads - L~R

      Correct. But why does it say this:


      and say this: ... usethreads=undef use5005threads=undef useithreads=define...
      Is usethreads=undef correct? The use5005threads is for the experimental threading model for Perl 5.005. The threading model for 5.8.0 is different from that. I do not know what useithreads is for.

      I am trying to determine if my version is built "correctly" with the correct threading model as I am having problems with shared variables. I apologize for not being more verbose in my initial post.

      -P0w3rK!d :)

      Full output:

      C:\Foo>perl -V Summary of my perl5 (revision 5 version 8 subversion 0) configuration: Platform: osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended, useposix=true, d_sigaction=undef usethreads=undef use5005threads=undef useithreads=define usemultip +licity=def ine useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cl', ccflags ='-nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D +_CONSOLE - DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_ +SYS -DUSE_ PERLIO -DPERL_MSVCRT_READFIX', optimize='-MD -Zi -DNDEBUG -O1', cppflags='-DWIN32' ccversion='', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64 +', lseeksi ze=8 alignbytes=8, prototype=define Linker and Libraries: ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -l +ibpath:"C: \Perl\lib\CORE" -machine:x86' libpth="C:\Program Files\Microsoft Visual Studio\VC98\mfc\lib" "C: +\Program F iles\Microsoft Visual Studio\VC98\lib" "C:\Perl\lib\CORE" libs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib + comdlg32 .lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uui +d.lib wsoc k32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt. +lib perllibs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool +.lib comd lg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib + uuid.lib wsock32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msv +crt.lib libc=msvcrt.lib, so=dll, useshrplib=yes, libperl=perl58.lib gnulibc_version='undef' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug -opt: +ref,icf - libpath:"C:\Perl\lib\CORE" -machine:x86' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL +_IMPLICIT_ CONTEXT PERL_IMPLICIT_SYS Locally applied patches: ActivePerl Build 806 Built under MSWin32 Compiled at Mar 31 2003 00:45:44 %ENV: PERLDB_OPTS="RemotePort=" @INC: C:/Perl/lib C:/Perl/site/lib .
        I am pretty sure your particular build is fine (use threads; doesn't gack right?), even though your install or particular attempt at threading might not be. From the install docs:

        Perl Environment Variables: if Perl environment variables such as PERLLIB, PERL5LIB or PERL5OPT have been set on your system, you should unset them before installing ActivePerl. Otherwise, these variables may cause incompatible versions of Perl modules to be used during the installation process.

        I also took a look at the Release Notes. It indicates that there is a problem with the emulated fork if the extension isn't thread safe.

        I examined the diff file from the standard install to what got compiled for ActiveState - IThreads are in there.

        Finally - I found this article, with examples, quite interesting by Jenda.

        I would recommend supplying the code and asking for more help.

        Cheers - L~R

Re: Threading: ActiveState Perl 5.8.0
by BrowserUk (Pope) on May 16, 2003 at 21:19 UTC

    Yes. It is.

    Examine what is said, not who speaks.
    "Efficiency is intelligent laziness." -David Dunham
    "When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://258669]
Approved by Thelonius
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (5)
As of 2019-12-07 11:07 GMT
Find Nodes?
    Voting Booth?
    Strict and warnings: which comes first?

    Results (160 votes). Check out past polls.