Copy the program below and revise it to make the program pro…
Copy the program below and revise it to make the program produce the same output every time when it executes #include #include #include int value;typedef struct __myarg_t { int x; int y;} myarg_t;pthread_t t1,t2;pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;void *work(void *arg) { myarg_t *m = (myarg_t *) arg; int local1 = m->x; int count = m->y; for (int i = 0; i < count ; i++) { value = value + local1; } return NULL;}int main(){ value = 0; myarg_t arg1 = {2, 1000}; myarg_t arg2 = {3, 1000}; int rc; value = 0; rc = pthread_create(&t1, NULL, &work, (void*)&arg1); if (rc < 0) { perror("pthread creation error for thread t1\n"); return -1; } rc = pthread_create(&t2, NULL, &work, (void*)&arg2); if (rc < 0) { perror("pthread creation error for thread t2\n"); return -1; } pthread_join(t1, NULL); pthread_join(t2, NULL); printf("%d\n", value); return 0;}
Read Details