Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/04/2005, 04:56
Avatar de kapachov
kapachov
 
Fecha de Ingreso: diciembre-2002
Ubicación: Loeches
Mensajes: 464
Antigüedad: 22 años, 2 meses
Puntos: 0
Hilos + fork = ?

Holas ...

Estoy tratando de crear una aplicacion que me crea un hilo "g_thread_create" y dentro de este crea un proceso "fork", no me funciona, no se que puedo estar haciendo mal (no soy un experto programando) ,
pego aqui el codigo :

--
gint main (gint argc, gchar *argv[])
{
do
{
hilo_cliente();
}while(1);

return 0;
}

gint cliente()
{
GMainLoop *bucle;

gint proceso_fork, estado_fork;

proceso_fork = fork();
if (proceso_fork == -1 )
g_print ("\n/- BREAK POINT NO CREA EL FORK -/\n"), exit(1);
else if (proceso_fork == 0)
{
g_print ("\n/- BREAK POINT CREA EL FORK -/\n");
exit(0);
}

while (wait(&estado_fork) != proceso_fork);

if (WIFEXITED(estado_fork) != 0)
g_print ("\nTERMINO EL PROCESO HIJO BIEN");
else
g_print ("\nTERMINO EL PROCESO HIJO MAL");


if (g_thread_self != NULL)
g_thread_exit (self);
else
exit(1);
return 0;
}

gint hilo_cliente ()
{
GError **error;

if (!g_thread_supported ())
g_thread_init (NULL);

g_thread_create(cliente,NULL,TRUE,error);

return 0;
}
---

Yo creo que hacer esto es posible pero no estoy seguro, pues la maquina una vez se ejecuta el programa pasado un tiempo se pone lenta... lenta.. lenta... lenta... y luego ya no va se bloquea !!
__________________
Siempre hago lo que quiero...
Aunque no quiera...

Última edición por kapachov; 21/04/2005 a las 07:16