problema creando threads

pabl3
08 de Julio del 2008
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.