Linux - Hilos + fork = ?

 
Vista:

Hilos + fork = ?

Publicado por kapachov (12 intervenciones) el 21/04/2005 12:57:57
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_sockets()
{
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 !!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder