http://qs1969.pair.com?node_id=285476


in reply to Re: Re: Re: returning from a thread ?
in thread returning from a thread ?

Here's my bit of code below :
# now stop the current scan thread # to do this, write in a file th_com.thd the value 0 if (defined $thread) { open (THREADCOM, ">".LTG::dialog::THREADCOM) or die "Can't creat +e/overwrite file: $!\n"; print (THREADCOM,"0"); close THREADCOM; # stop thread } print "create thread\n"; $thread = threads->new(\&LTG::scanChange::monitor());# \&LTG::scanC +hange::monitor); $thread->detach(); # let go off the new thread
And here's the sub's code
sub monitor { my @wantedF; # folders to be scanned my @bannedF; # banned folders not to be scanned if ( -e LTG::dialog::CONFIGFILE) { open(FOLDERLIST,LTG::dialog::CONFIGFILE) or die "can't open file +"; my $content = <FOLDERLIST>; my $addForce = 0; while ($content) { if ($content ne "\n") { $content =~ s/\n/ /; ($content =~/^\#FORCE\#/)?($addForce = 1):(($content =~/^\# +BAN\#/)?($addForce = 0):($addForce?push(@wantedF,$content):push(@bann +edF,$content))); } $content = <FOLDERLIST>; } close (FOLDERLIST); } open (THREADCOM, ">".LTG::dialog::THREADCOM) or die "Can't create/o +verwrite file: $!\n"; print THREADCOM "1"; close THREADCOM; my $active = 1; while ($active) { if ( -e LTG::dialog::THREADCOM) { open(THREADCOM,LTG::dialog::THREADCOM) or die "can't open fil +e THREADCOM"; $active = <THREADCOM>; print "active : $active \n"; close THREADCOM; } my %changes = LTG::scanChange::startScan(\@wantedF,\@bannedF,INC +_SUBDIRS); foreach my $k (keys %changes) { print "key : $k -> content : $changes{$k}\n"; } # update database here Sumith # print "---while---\n"; } }
I'm running perl on a Winnt 4.0 system, and here's my perl info (perl -v)
This is perl, v5.6.1 built for MSWin32-x86-multi-thread (with 1 registered patch, see perl -V for more detail) Copyright 1987-2001, Larry Wall Binary build 635 provided by ActiveState Corp. http://www.ActiveState. +com Built 15:34:21 Feb 4 2003 Perl may be copied only under the terms of either the Artistic License + or the GNU General Public License, which may be found in the Perl 5 source ki +t. Complete documentation for Perl, including FAQ lists, should be found +on this system using `man perl' or `perldoc perl'. If you have access to + the Internet, point your browser at http://www.perl.com/, the Perl Home Pa +ge.