Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: kikin8224 en 08 de Noviembre de 2007, 04:58:23 AM

Título: Multithreáding SDL
Publicado por: kikin8224 en 08 de Noviembre de 2007, 04:58:23 AM
Hola a todos,
Tengo un codigo en el q hago lo sgte:
....
....
int main(int argc,char*argv[]){
.....
......
thread1 = SDL_CreateThread(thread_func1, NULL);
thread2 = SDL_CreateThread(thread_func2, NULL);

SDL_WaitThread(thread1, NULL);
SDL_WaitThread(thread2, NULL);

.....
.....
}

En la funcion thread_func1 cargo imagenes, y en la funcion thread_func2 las muestro en pantalla y luego elimino las imagenes q cargue; esto lo repito periodicante.
El problema sucede que a la tercera vez q lo repito  se vuelve muy lenta y  se cuelga :S, nose porque sucede. Sospecho que se debe a que los recursos que se reservan al crear cada hilo no son liberados...

Espero puedan ayudarme en este problema:
Título: Multithreáding SDL
Publicado por: Topper en 08 de Noviembre de 2007, 09:00:32 AM
Y yo me pregunto, para que necesitas crear un hilo para cada tarea si realmente estás operando de forma síncrona al obligar a esperar la finalización de cada tarea con SDL_WaitThread?

No le veo beneficio alguno a ese código...

Saludos.
Título: Multithreáding SDL
Publicado por: [EX3] en 08 de Noviembre de 2007, 09:33:00 AM
Lo del multihilo suele ser util por ejemplo para mostrar pantallas de carga dinamicas mientras en un segundo hilo se van cargando los recursos del juego, pero en este caso no tiene sentido si lo que haces en un hilo afecta directamente al resultado del segundo.

Salu2...
Título: Multithreáding SDL
Publicado por: kikin8224 en 11 de Noviembre de 2007, 10:29:31 PM
Saludos a todos, gracias por las respuestas.
Talvez plantee mal el problema.
Lo que hago es una animacion de 200 imagenes, cargo  50 al iniciar el programa y mientras empiezo a  mostrar las primeras images cargo las 150 restantes. Al eliminar la animacion elimino las 150 imagenes que cargue.
Mi duda es cual seria la forma correcta de liberar los recursos de cada hilo. Para poder mostrar nuevamente la animacion.:)