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
pgpWidgcfz1A1.pgp
Description: PGP signature