Example #1
0
// enche a piscina kkkkk
piscina* Dig_TombPool(int NumThread)
{
 piscina* dados;
 int count=0;
	
 if(NumThread<1) 
  NumThread=1;
// usamos a heap para criar a pool
 dados=(piscina*)xmalloc(sizeof(piscina));                             

// alocamos apra ID agora
 dados->threads=(pthread_t*)xmalloc(NumThread*sizeof(pthread_t));      
 dados->NumThread=NumThread;
	
// iniciamos tarefa de fila
 piscina_fila_init(dados);
	
// alocamos para o semaforo
 dados->TarefaFila->filaSemaforo=(sem_t*)xmalloc(sizeof(sem_t));                 
 sem_init(dados->TarefaFila->filaSemaforo, 0, 0); 
	
// damos create com pthread

 do{
  pthread_create(&(dados->threads[count]), NULL, (void *)poolWheel, (void *)dados); 
  count++;
 }while(count<NumThread);
	
 return dados;
}
Example #2
0
// enche a piscina kkkkk
piscina *Dig_TombPool( int NumThread )
{
	no_write_coredump();
	piscina* dados;
	int count = 0,test=0;
	
	if( NumThread < 1 ) 
		NumThread = 1;
// usamos a heap para criar a pool
	dados = xmalloc ( sizeof( piscina ) );                             

// alocamos apra ID agora
	dados->threads = xmalloc ( NumThread * sizeof(pthread_t) );      
	dados->NumThread = NumThread;
	
// iniciamos tarefa de fila
	piscina_fila_init( dados );
	
// alocamos para o semaforo
	dados->TarefaFila->filaSemaforo = xmalloc ( sizeof( sem_t ) );                 
	sem_init( dados->TarefaFila->filaSemaforo , 0, 0 ); 
	
// damos create com pthread

	do{
		
		test=pthread_create ( & ( dados->threads[count] ), NULL , (void *) poolWheel , (void *) dados ); 

		if(test)
		{
			DEBUG("Error \n");
			th_error(test,"error here!");
		}
		count++;
		
	}while( count < NumThread );
	
	
	return dados;
}