[C con Clase] Duda

Jorge Vega Sanchez memmaker650 en gmail.com
Mie Ene 5 19:05:39 CET 2011


Buenas de nuevo.

Tengo el siguiente pedazo de código.

void captura_frame()
{
	almacen <int> v(1);
	
	signal(SIGALRM, metodo_fuego);
	while (1)
	{
		alarm(120);
		pause();
		
	}
}

void metodo_fuego()
{
	// TRATAMIENTO
}


Resumiendo. Lo que hace captura_frame es crear una alarma para cada dos minutos llamar a metodo_fuego para que haga el tratamiento de unos datos.
Mi duda viene o más bien quiero que reafirmeis lo que pienso. Es decir la idea es que cada 120 segundos se lance el método fuego y se traten los datos.
El problema es que me parece que no será exactamente cada 120 segundos porque hay que tener en cuenta el tiempo de tratamiento de los datos.

Creo que la ejecución será:
- Pongo alarma
- No hago nada durante 120 seg
- Salta alarma
- Lanza metodo fuego
- Ejecución de metodo_fuego en el que se tratan datos y se tratan durante 2 segundos por ejemplos.
- Termina metodo_fuego y vuelve al bucle infinito  de captura_frame
- Se pone otra alarma
- . . .

Para que fuera cada 120 segundos debería usar hilos de ejecución o un fork y que el hijo ejecutará metodo_fuego y el padre siguiera en el bucle infinito ???
Alguna otra opción.

Un saludo.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110105/16f4b590/attachment.html>


Más información sobre la lista de distribución Cconclase