| #include <stdio.h>␍␊ |
| #include <pthread.h>␍␊ |
| ␍␊ |
| #define LOOP 20000␍␊ |
| ␍␊ |
| volatile int counter = -1;␍␊ |
| volatile long gvar = 0;␍␊ |
| ␍␊ |
| DWORD WINAPI produce(void* data) {␍␊ |
| void * produce(void* data) {␍␊ |
| ␉int i = 0;␍␊ |
| ␉for (i = 0; i < LOOP; i++)␍␊ |
| ␉␉gvar++;␍␊ |
| }␍␊ |
| ␍␊ |
| DWORD WINAPI consume(void* data) {␍␊ |
| void * consume(void* data) {␍␊ |
| ␉int i = 0;␍␊ |
| ␉for (i = 0; i < LOOP; i++)␍␊ |
| ␉␉gvar--;␍␊ |
|
| ␉␍␊ |
| ␉pthread_join( thread1, NULL);␍␊ |
| pthread_join( thread2, NULL);␍␊ |
| ␉printf("gvar = %i\n", gvar);␍␊ |
| ␉printf("gvar = %lu\n", gvar);␍␊ |
| } |