Dado que no domino el  tema del multithread (aunque supongo que
     todo  radica  en  fork()),  estoy haciendo  dos  programas  que  se
     comunicarán mediante una pipa. Como prueba sencilla, servidor.pl:

#!/usr/bin/perl
## abrir tuberia
open (PIPA, "</home/hue/tmp/contador");
do {
        ## esperar que lleguen datos
        $texto = <PIPA>;
        ## imprimir en pantalla
        print $texto;
} until ($texto eq "MEPIRO\n");
close(PIPA);

         La otra parte, cliente.pl:

#!/usr/bin/perl
$texto = $ARGV[0];
open (PIPA, ">/home/hue/tmp/contador");
print (PIPA $texto . "\n");
close (PIPA);

         Bien:

$ ./cliente.pl uolas
uolas
$

         El texto  va por  la tubería  y aparece  en pantalla  porque el
     servidor lo imprime. PERO! desde  este momento, el servidor se pone
     a comsumir  frenéticamente todo el  micro que puede. El  xosview me
     indica que el tiempo de micro es en modo usuario, no sistema. ¿Cómo
     puedo arreglarlo?  En el man de  fifo(4) veo que se  puede abrir la
     tubería en modo blocking o non-blocking,  no sé si esto tendrá algo
     que ver, y en tal caso tampoco sé cómo implementarlo en perl.

         Esto es off topic aquí, ¿conocéis alguna lista de perl?


-- 
 David Serrano <[EMAIL PROTECTED]> - Linux Registered User #87069

Attachment: pgpWidgcfz1A1.pgp
Description: PGP signature

Responder a