/[livstidsfanger]/trunk/livstidsfanger.c
ViewVC logotype

Diff of /trunk/livstidsfanger.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 7 by trond, 2014-11-07T08:56:07Z Revision 8 by trond, 2014-11-07T09:29:54Z
# Line 108  noreturn void *livstidsfange(void *arg) Line 108  noreturn void *livstidsfange(void *arg)
108      printf("livstidsfange %2zu venter på signal fra fengselsdirektøren\n", i + 1);      printf("livstidsfange %2zu venter på signal fra fengselsdirektøren\n", i + 1);
109      pthread_cond_wait(&cond, &mutex);      pthread_cond_wait(&cond, &mutex);
110      printf("livstidsfange %2zu har fått signal fra fengselsdirektøren og har låst mutex\n", i + 1);      printf("livstidsfange %2zu har fått signal fra fengselsdirektøren og har låst mutex\n", i + 1);
111    
112      // Utføre selve simuleringen ved å sjekke brytere, m.m.      // Utføre selve simuleringen ved å sjekke brytere, m.m.
113      antallBesok[i]++;      antallBesok[i]++;
114      printf("livstidsfange %2zu har besøkt rommet %u gang%s\n", i + 1, antallBesok[i], antallBesok[i] == 1 ? "" : "er");      printf("livstidsfange %2zu har besøkt rommet %u gang%s\n", i + 1, antallBesok[i], antallBesok[i] == 1 ? "" : "er");
115    
116      if (i == tellendeLivstidsfange) {      if (i == tellendeLivstidsfange) {
117        if (brytere[0] == false) {        if (brytere[0] == false) {
118          printf("livstidsfange %2zu ser at bryter 1 er nede og vipper opp bryter 1\n", i + 1);          printf("livstidsfange %2zu ser at bryter 1 er nede og vipper opp bryter 1\n", i + 1);
119          brytere[0] = true;          brytere[0] = true;
120        } // if        } // if
121        else {        else {
122          brytere[0] = !brytere[0];          brytere[0] = !brytere[0];
123          printf("livstidsfange %2zu vipper %s bryter 1\n", i + 1, brytere[0] == 1U ? "opp" : "ned");          printf("livstidsfange %2zu vipper %s bryter 1\n", i + 1, brytere[0] == true ? "opp" : "ned");
124    
125          if (forrigeGangErGyldig == true && forrigeGang == false) {          if (forrigeGangErGyldig == true && forrigeGang == false) {
126            antallLivstidsfanger++;            antallLivstidsfanger++;
127            printf("livstidsfange %2zu har talt opp %u livstidsfanger\n", i + 1, antallLivstidsfanger);            printf("livstidsfange %2zu har talt opp %u livstidsfanger\n", i + 1, antallLivstidsfanger);
128    
129            if (antallLivstidsfanger == ANTALL_LIVSTIDSFANGER) {            if (antallLivstidsfanger == ANTALL_LIVSTIDSFANGER) {
130              printf("livstidsfange %2zu avslutter simuleringen\n", i + 1);              printf("livstidsfange %2zu avslutter simuleringen\n", i + 1);
131              exit(0);              exit(0);
132            } // if            } // if
133          } // if          } // if
134    
135          forrigeGangErGyldig = true;          forrigeGangErGyldig = true;
136          forrigeGang = brytere[0];          forrigeGang = brytere[0];
137        } // else        } // else
138      } // if      } // if


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

svn@ximalas.info
ViewVC Help
Powered by ViewVC 1.3.0-dev