// 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; }
// 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; }