I am trying to process data with a set of threads and enqueue it with another, curr开发者_运维技巧ently the enqueueing and dequeueing process doesn't seem to be working
Any thoughs??
sub process() {
while (my @DataElement = $DataQueue->dequeue()) {
print "\t".$DataElement[0]."\n";
}
}
I use the following to enqueue the data
my @l;
push(@l, $directories.$suffix);
push(@l, "testclass");
push(@l, $eachFile);
$DataQueue->enqueue(\@l);
Are you accessing an array reference without dereferencing it? Try
while (my $DataElementRef = $DataQueue->dequeue()) {
my @DataElement = @$DataElementRef;
print "\t".$DataElement[0]."\n";
}
@l is not shared, so you can't pass it's reference to another thread. Use threads::shared.
精彩评论