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 !!