Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/10/2011, 20:38
usuaria
 
Fecha de Ingreso: marzo-2007
Mensajes: 302
Antigüedad: 17 años, 1 mes
Puntos: 2
Pregunta Se puede pasar un thread a un método de una clase?

Hola, quería hacer una consulta del siguiente código (pueden faltar partes de código, solo copie la parte de código necesaria para la consulta).

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:
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 *)&param[i]);
		if(rc){
			exit(-1);
		}
	}	
}

-------------------------

Monitor.cpp

void registrarse(){
	pthread_mutex_lock(&mutex);
	cant++;
	pthread_mutex_unlock(&mutex);
}
Grx!