void *updaterThread(void *arg){ int i; for(i = 0; i < 10; i++){ pthread_mutex_lock(&lock); struct wonk *newval = getNewVal(&shrdPtr); shrdPtr = newval; pthread_mutex_unlock(&lock); } }
void *updaterThread(void *arg){ int i; for(i = 0; i < 10; i++){ pthread_mutex_lock(&lock); struct wonk *newval = getNewVal(&symb_shrdPtr); //Nuno: replicate getNewVal on symb_shrdPtr to allow capture symb operations on shrdPtr pthread_mutex_unlock(&lock); usleep(20); pthread_mutex_lock(&lock); shrdPtr = newval; symb_shrdPtr = newval; //Nuno: replicate operation for symb_shrdPtr pthread_mutex_unlock(&lock); } }
void *updaterThread(void *arg){ pthread_barrier_wait(&bar); int i; for(i = 0; i < 10; i++){ pthread_mutex_lock(&lock); struct wonk*newval = getNewVal(&shrdPtr); pthread_mutex_unlock(&lock); pthread_mutex_lock(&lock); shrdPtr = newval; pthread_mutex_unlock(&lock); } pthread_exit(0); }