[bcn-pm] Enviar un objeto a un proceso hijo
Alex Muntada
alexmaalexm.org
Dil Abr 3 15:43:04 PDT 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
* Gabriel Perez S. <gperezarunsolutions.com>:
[2006-03-31 13:54:44 +0200]
> el problema que tengo es que yo quiero enviar a los hijos
> algunos de los eventos que recibo del demonio pero la variable
> donde "meto" el socket que se conecta con el demonio de los
> eventos no la pueden ve los hijos
El problema del que parles s'anomema Inter-Process Communication
(IPC) en sistemes basats en Unix. Hi ha moltes formes per a
comunicar o compartir informació entre processos: des de les
zones de memòria compartida, passant per les pipes, fitxers,
sockets, pas de missatges, etc.
Cada solució té els seus avantatges i els seus inconvenients.
Fes un cop d'ull al manual de «perlipc» i busca IPC al CPAN.
> Para -solucionar- esto cree otro objeto "pakage" que se llama
> GLOBAL (esta en el script central) y este deberia ser el sitio
> donde se guarden los eventos enviados por el demonio y los hijos
> deberían verlo. La idea, es que lo vean todos, el script central
> y el demonio de los eventos para enviarle lo que le toca a cada
> hijo.
Busca «Bidirectional Communication with Yourself» al perldoc
perlipc i veuràs maneres més senzilles d'aconseguir comunicar
pares i fills via pipes o sockets.
> tiene que existir alguna manera de mantener comunicados a hijos
> y padres sin hacer que se conecten entre sí por unix socket o
> tcp/udp. ¿No?
La manera clàssica d'IPC entre pares i fills es basa en pipes:
1) el procés pare crea una pipe;
2) el pare fa el fork;
3) el pare tanca un dels canals de la pipe;
4) el fill (que hereda la pipe), tanca l'altre canal;
5) tot el que el pare escriu pel canal obert de la pipe,
ho rep el fill pel seu.
Si vols comunicació bidireccional, només et cal utilitzar 2
pipes (com en el primer exemple que trobaràs a la secció que
comentava del perlipc).
- --
Alex Muntada <alexmaalexm.org>
http://alexm.org/
-----BEGIN PGP SIGNATURE-----
iD8DBQFEMaTyLdxCGS3zaBERAlZrAKCDCg6er+II86n7pWjKUHg5sTun6gCfQufA
yBonLj5EcfJP0lIQcIcT31g=
=L03J
-----END PGP SIGNATURE-----
Més informació de la llista de correu Barcelona-pm