How can I share among threads a FileHandle to Write ?
#!/opt/coolstack/bin/perl -w use strict; use threads; use threads::shared; use FileHandle; my $nthreads = 64; my $x : shared; # For sync my $fh = FileHandle->new("> out.txt"); my @thrs; for(1..$nthreads){ print "START $_ \n"; my ($thr) = threads->create(\&worker, $_, $fh); push @thrs ,$thr; } $_->join for @thrs; print "STOP: " . localtime() . "\n"; $fh->close; print `wc -l out.txt`; exit; #---------------------------------------------------- sub worker{ my $id = shift; my $fh = shift; my $tmp; for(1..1000){ lock $x; print $fh "bla blalbla bla blal bla bla bla bla\n" ; #NOT SHARED!! +!! } print "$id>LOAD EXIT\n"; }
In reply to Threads: How to share a FileHandle to Write by gulden
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |