Cuando en la func2 se llama al método mon.registrarse , es necesario pasar el thread (de ser asi, como lo paso y como lo identifico luego en el método en cuestion) o no se debe pasar y automaticamente el thread ingresa en el metodo mencionado. ?
Y si dentro del metodo registrarse quiero dormir algun thread en particular como se debe hacer ?
Código:
Grx!
main.cpp
Monitor mon;
void *func2(void *arg){
int tid;
string b;
datos *p = (datos *) (arg);
tid = (p->dato1);
b = (p->dato2);
mon.registrarse();
}
void crearThreads(int cant){
pthread_t cthreads[cant];
int i, rc;
for (i=0; i<cant; i++) {
param[i].dato1=i;
param[i].dato2="T";
rc = pthread_create(&cthreads[i], NULL, func2, (void *)¶m[i]);
if(rc){
exit(-1);
}
}
}
-------------------------
Monitor.cpp
void registrarse(){
pthread_mutex_lock(&mutex);
cant++;
pthread_mutex_unlock(&mutex);
}


