Problemas con el tiempo real...

hola me gustaría generar varios hilos gestionados por uno maestro... para ello de momento he creado estas dos funciones para hilos:

void * hilo(void* param){     
     while(1){
     pthread_mutex_lock(&mutexSinc[int(param)]);
     pthread_cond_wait(&conds[int(param)],&mutexSinc[int(param)]);
     sleep(1);
     tareas[int(param)]->cargaActual++;
     cout<<"soy el hilo: "<<int(param) <<" tengo carga:"<<tareas.at(int(param))->carga <<endl;     
     pthread_mutex_unlock(&mutexSinc[int(param)]);
     pthread_mutex_lock(&mutexSinc2[int(param)]);
     pthread_cond_signal(&conds2[int(param)] );       
     pthread_mutex_unlock(&mutexSinc2[int(param)]);
     }
}

void activarHilo(int h){
        pthread_mutex_lock(&mutexSinc[int(h)]);
        pthread_cond_signal(&conds[h] );       
        pthread_mutex_unlock(&mutexSinc[int(h)]);
        pthread_mutex_lock(&mutexSinc2[h]);
        pthread_cond_wait(&conds2[h],&mutexSinc2[h]);
        pthread_mutex_unlock(&mutexSinc2[h]);
       
       
}

void * hiloGestor(void* param){
     
activarHilo(0);
activarHilo(0);
activarHilo(0);
activarHilo(0);
activarHilo(0);
activarHilo(0);
//     for (int i=nTareas;i>=0;i--){
//             activarHilo(i);                           
//     }


     
//     for(int i=nTareas;i>=0;i--){
//             activarHilo(i);       
//    }
}


por alguna razón activar hilo no funciona como yo quiero... quiero que active el hilo ejecute el sleep y después devuelva el control a hilo. Todas las variables estan inicializadas y todo.
Por que inicias los hilos de esa manera ? me parece una forma de hacer un hilo demasiada complicada ( si esque entendi bien lo que quieres hacer )
yo los hilos los creo con sceKernelCreateThread no se si hace lo mismo pero bueno... el caso es que es mas sencillo que todo el codigo que pones.
no es para psp :P esto son pthreads y los hilos ya están inicializados.
el problema es el método de sincronizacion.

un saludo
2 respuestas