Tengo un módulo Perl que es ejecutado por muchos threads (creo que 4) en paralelo.
El caso es que tengo un contador:
Using perl Syntax Highlighting
que es incrementado en una determinada función:
Using perl Syntax Highlighting
sub printFlatDecodedLine {
...
$flatValidLines++;
}
...
$flatValidLines++;
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
y otra función, llamada al final que imprime el valor de dicho contador:
Using perl Syntax Highlighting
sub printFlatReport {
...
my $nblines = $self->getFlatValidLines();
if ($self->reopenReport($fileName) != 0 ) { return 1;}
print $reportFd "TRAILER ".$nblines;
}
...
my $nblines = $self->getFlatValidLines();
if ($self->reopenReport($fileName) != 0 ) { return 1;}
print $reportFd "TRAILER ".$nblines;
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
La función getFlatValidLines() devuelve el valor de la variable $flatValidLines.
El caso es que siempre me imprime 0, cuando en realidad ha ido incrementando. ¿Hay algun modo de proteger el valor y que ninguno de los threads lo meta a 0?
Gracias a todos,
Felipe