4 void *thread_function(void *);
5 //pthread_mutex_t mutex1;
13 static Box& getInstance() {
19 pthread_mutex_lock(&pool_mutex);
21 pthread_mutex_unlock(&pool_mutex);
26 pthread_mutex_init(&pool_mutex, NULL);
29 pthread_mutex_t pool_mutex;
32 int user_main(int argv, char **argc)
34 // void *dummy = NULL;
35 // pthread_mutex_init(&mutex1, NULL); /* PTHREAD_MUTEX_INITIALIZER;*/
37 // pthread_t thread_id[NTHREADS];
40 Box::getInstance().addone();
42 /* for(i=0; i < NTHREADS; i++)
44 pthread_create( &thread_id[i], NULL, &thread_function, NULL );
47 for(j=0; j < NTHREADS; j++)
49 pthread_join( thread_id[j], NULL);
53 printf("Final counter value: %d\n", counter);
55 for (i=0;i<NTHREADS; i++) {
56 printf("id %ld\n", thread_id[i]);
61 void *thread_function(void *dummyPtr)
63 // printf("Thread number %ld\n", pthread_self());
64 Box::getInstance().addone();
65 // pthread_mutex_lock( &mutex1 );
66 // Box::getInstance().counter++;
67 // pthread_mutex_unlock( &mutex1 );