Procesos y variables

Started by gecko, January 29, 2010, 06:15:22 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

grisendo

Yo entiendo que no tiene sentido hacer un cambio de padre así. Lo que dice Splinter es cierto, en la práctica puedes cambiar el padre de un proceso P con P.father, pero estás haciendo que el hijo sepa quién es su padre... pero no que el padre sepa que P es su hijo!! Entonces, luego ese padre no reconoce a P como hijo al usar funciones tipo _tree, ni P va a saber quienes son sus hermanos a no ser que modifiques muchas más variables (método muy guarro, y ni aún así no sé si es factible...)

Yo lo que haría sería una variable pública/local de "huerfano" a 0. Cuando un proceso padre muere, en el ONEXIT que ponga a todos sus hijos la variable "huerfano" a 1. Y como dice drumpi usar get_id():

[code language="bennu"]
process padre
begin
   ...
   // crear hijos
   ...
onexit
   // para i = todos los hijos, i.huerfano = 1;
end

process hijo
public
   huerfano = 0;
begin
   // Su codigo
end

process buscarhuerfanos
private
   aux;
begin
   while(aux=get_id(type hijo))
       if(aux.huerfano)
           // lo que sea con ellos
       end
   end
end
[/code]

Windgate

Gran idea lo del ONEXIT y el proceso de adopción xD

Desde luego si en un enrevesado videojuego me veo con la necesidad de hacer algo así tomaré tu idea Grisendo, voy cocinando el karma para entonces :D
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

si cambian esos datos, despues no vengan que se les cae bennu... muchas de esas variables son puntas de listas... y tambien internamente hay hashes que si tocan estas variables los arruinan...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

Tranquilo, si lo hacemos y suceden cosas excéntricas no le echaremos la culpa a Bennu :D
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

la cosa es que despues surjen cazas de bugs fantasmas en operaciones que nada tienen que ver, y es una perdida de tiempo para uds. y para mi...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

grisendo

Pero con el ejemplo que he puesto no estoy tocando nada chungo, no? Porque esas cosas de cambiar los father y tal las hacía de crío (no exactamente esa, pero barbaridades parecidas) cuando jugueteaba con DIV y no tenía ni idea de qué era un puntero xDD y salí escaldao con la de fallos que me salían... Nunca más!!

Por cierto, no se pueden hacer que esas variables sean de "sólo lectura" y que el compilador no permita asignarlas? Evidentemente se puede hacer, lo que me refiero es que si tal y como está planteado el compilador, supondría mucho problema modificar cosas... Lo dejo como sugerencia de todas formas.

SplinterGU

actualmente no se pueden hacer de solo lectura.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

Je je je, las respuestas de Splinter son como un sable afilado, en 4 palabras y en 2 segundos responde dudas que a tí te han costado 3 párrafos y varios años de conjeturas ;)
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

grisendo

Ya te digo... el estereotipo que nos intenta vender la televisión del argentino que habla por los codos... estoy viendo que eso es falso xD
Es como los dibujantes de viñetas buenos, que con una o dos palabras hacen chistes mejores que otros con párrafos

DCelso

pues yo me creo el estereotipo, conozco a unos cuantos en persona y no hay manera de callarlos, fijo que splinter en persona tb habla por los codos :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

soy timido... mas bien me gusta escuchar que hablar... se aprende mas... cuando hablo es porque estoy muy seguro de algo, y dijo lo justo y necesario... no me gusta hablar por demas... (a pesar de mi cantidad de posts...)

tambien me gusta señalar las cosas que se hacen mal, o incluso me gusta preguntar a alguien que definio o diseño algo cosas sobre el mismo como si no entendiera, pero solo para hacerle ver a esa persona que se le esta escapando algo que no penso... y que tiene ahi una falla...

PD: Creo que esta vez hable por los codos... :P
Download Lastest BennuGD Release: http://www.bennugd.org/node/2