problema creando threads
Hola,
el asunto es que quiero crear un hilo desde una funcion de una clase. Seria de la siguiente manera:
void fspstreamerclient::play(int ontop, int loglevel, int reduction) {
...
...
pthread_t thread1;
...
...
if (pthread_create( &thread1, NULL, thread_receiveFW, NULL) ) {
printf("Error creating thread 1.");
abort();
}
...
...
}
void* fspstreamerclient::thread_receiveFW(void *arg) {
while(true){
size_enc_frame_FW = conn_FW->receive(frame_enc_FW);
if(conn_FW->framecomplete()) {
sizeof(frame_enc_FW));
pthread_cond_signal(&FW);
pthread_cond_signal(&overlay);
}
}
return NULL;
}
Al compilar me encuentro con el siguiente problema:
error: argument of type ‘void* (fspstreamerclient::)(void*)’ does not match ‘void* (*)(void*)’
He buscado sobre esto, y parece ser que los hilos deben ser globales o estaticos. He probado a definirlo estatico, pero me encuentro con el problema de que las variables que uso dentro del thread deben ser estaticas tambien.
Espero que haya quedado claro mi problema.
A ver si alguien que tenga mas experiencia en c, me puede echar una mano.
Muchas gracias de antemano.
el asunto es que quiero crear un hilo desde una funcion de una clase. Seria de la siguiente manera:
void fspstreamerclient::play(int ontop, int loglevel, int reduction) {
...
...
pthread_t thread1;
...
...
if (pthread_create( &thread1, NULL, thread_receiveFW, NULL) ) {
printf("Error creating thread 1.");
abort();
}
...
...
}
void* fspstreamerclient::thread_receiveFW(void *arg) {
while(true){
size_enc_frame_FW = conn_FW->receive(frame_enc_FW);
if(conn_FW->framecomplete()) {
sizeof(frame_enc_FW));
pthread_cond_signal(&FW);
pthread_cond_signal(&overlay);
}
}
return NULL;
}
Al compilar me encuentro con el siguiente problema:
error: argument of type ‘void* (fspstreamerclient::)(void*)’ does not match ‘void* (*)(void*)’
He buscado sobre esto, y parece ser que los hilos deben ser globales o estaticos. He probado a definirlo estatico, pero me encuentro con el problema de que las variables que uso dentro del thread deben ser estaticas tambien.
Espero que haya quedado claro mi problema.
A ver si alguien que tenga mas experiencia en c, me puede echar una mano.
Muchas gracias de antemano.
