Threads Pool - C Language
main.c
Vai alla documentazione di questo file.
00001 
00012 #include <stdio.h>
00013 #include <unistd.h>
00014 #include "thpool.h"
00015 #include "errore.h"
00016 
00017 /*static int r=0;       
00020 void *test(void * arg){
00021         printf("Hello World !\n");
00022         return 0;
00023 }
00024 
00026 int main(int argc,char* argv[]){
00027         int i=0;
00028         th_pool * pool = NULL;
00029         sigset_t set;   
00031         /* Questa maschera ignora tutti i segnali */
00032         if (sigfillset(&set) == -1){
00033                 sys_err(__FILE__,__LINE__,"Main: error sigfillset",errno);
00034                 exit(EXIT_FAILURE);
00035         }
00036 
00037         /* Inizializzo un pool di thread di dimensione 5 e
00038          * con un numero massimo di job in attesa nella coda di 10 */
00039         if (!(pool = poolInit(5, 10, &set))){
00040                 exit(EXIT_FAILURE);
00041         }
00042 
00043         /* Creo dei job fittizzi da fare eseguire al pool */
00044         for (i=0; i<20; i++){
00045                 while (poolDispatcher(pool, test, NULL)==-5){
00046                         sleep (1);
00047                 }
00048         }
00049 
00050         /* Arresto il pool di threads e libero le risorse */
00051         poolDestroy(pool);
00052 
00053         return 0;
00054 }