I upgraded to perl 5.8 and I still get an error. Here is the error I get for
the code mentioned in my previous message:

"Free to wrong pool 1af0140 not 15d26e8 during global destruction."

"Rob Hanson" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> Maybe you could post the error to the list?
>
> The problem may be the version of Perl you are using.  Stable threads were
> introduced in version 5.8.  In 5.6 they are experimental (maybe part of
the
> problem?) and use a different syntax.
>
> You seem to be using "use thread" which is the 5.8 syntax, but 5.6 uses
use
> "Thread".
>
> I suggest upgrading if you can.
>
> Rob
>
> -----Original Message-----
> From: Sharmarke Aden [mailto:[EMAIL PROTECTED]
> Sent: Friday, March 14, 2003 2:56 PM
> To: '[EMAIL PROTECTED]'
> Subject: Help with Threads.
>
>
> I'm new to Perl and trying to access several directories at the same time
> and simply read the content of the directory and do some processing on the
> files in those directories. The code below is a reference code to get
> started on the real work. The code below however crashes and I'm lost as
to
> what the cause is. Any help you could give me I'd appreciate it. This code
> simple in that it looks for 3 letter directories and creates a stats file
> used to report the files in that directory. Eventually what I'll want to
do
> is run those files through processing and take advantage of a bitching 8
> processor machine we just got. BTW I'm using Perl 5.6 on win 2000 machine
> (ActivePerl-5.6.0.623-MSWin32-x86-multi-thread to be exact).
>
>
>
> #code starts
>
>
>
> use threads;
>
>
>
> $currDir = `cd`;
> chop($currDir);
> opendir(IP_MAIN_DIR, $currDir);
>
>
>
> #remove '.' and '..'
>
> @allBatchFolders = grep !/^\.\.?$/, readdir IP_MAIN_DIR;
> #get the names of all the 3 character directories in to a list/array
("aaa"
> and "aab, and "aac" qualify)
>
> @allBatchFolders = grep /^[a-z][a-z][a-z]$/, @allBatchFolders;
>
>
>
> #open stat file for writing
> open(STATFILE, ">$currDir\\stat.txt");
> $index = 0;
>
> foreach $aDir (@allBatchFolders)
> {
>   $aThread[$index] = threads->new(\&writeStat, $aDir);
>  @ReturnData = $aThread[$index]->join();
>  $index++;
> }
>
> closedir(IP_MAIN_DIR);
> close(STATFILE);
>
>
>
> sub writeStat
> {
>   $localDir = $currDir . "\\" . $_[0];
>   local *DIRECTORY;
>   opendir(DIRECTORY, $localDir);
>   print "Start wile loop: @_[0]\n";
>   print STATFILE "Start wile loop: @_[0]\n";
>   rewinddir( DIRECTORY );
>   while ($file = readdir(DIRECTORY))
>   {
>     writeToFile(@_[0], $file);
>   }
>   print STATFILE "End wile loop: @_[0]\n";
>   print "End wile loop: @_[0]\n";
>   closedir(DIRECTORY);
> }
>
>
>
> sub writeToFile
>
> {
>
>     use attrs qw(locked);
>     print STATFILE "Thread @_[0]: @_[1]\n";
> }
>
>
>
> #code ends
>
>
>
>
>
>
>
> ----------------------------------------------------------------
>
> Sharmarke Aden
>
> Continental DataGraphics [www.cdgpd.com <http://www.cdgpd.com> ]
>
> Direct: (425) 691-2583
>
> Fax: (425) 450-1935
>
> Email: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>
> ----------------------------------------------------------------
>
>
>



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to