Asante 10Base2 Manual de usuario Pagina 41

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 41
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 40
Condition Variables
pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t cond1 = PTHREAD_COND_INITIALIZER;
int count; int valid = 0;
void
*
writeCounter() {
int i;
for (i = 0 ; i < 10 ; i++) {
pthread_mutex_lock(&mutex1);
while (valid) pthread_cond_wait(&cond1, &mutex1);
count = i; valid = 1;
pthread_cond_signal(&cond1);
pthread_mutex_unlock(&mutex1);
}
return NULL; }
void
*
readCounter() {
int done = 0;
do {
pthread_mutex_lock(&mutex1);
while (!valid) pthread_cond_wait(&cond1, &mutex1);
printf("%d\n", count);
valid = 0; done = count == 9;
pthread_cond_signal(&cond1);
pthread_mutex_unlock(&mutex1);
} while (!done);
return NULL; }
Vista de pagina 40
1 2 ... 36 37 38 39 40 41

Comentarios a estos manuales

Sin comentarios