Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Monitor H20;
- condition H, O, ok, done, next;
- boolean finish = true;
- int count = 0, idO = 0, idH = 0;
- int Oid, H1id, H2id;
- bound(Oid, H1id, H2id) { ... }
- barrierOxy(oxy, var hidro1, var hidro2)
- {
- if(finish) {H.signal(); finish = false;} //ovo je kao zamajac koristi se samo jednom da se pokrene postupak tj da se generise
- //H.signal(), nakon toga sledeci put ce biti tek na kraju ovog procesa.
- O.wait(idO++); //Dabi se kiseonici koristili po redu po kojim su dosli.
- O.id = .... // Indetifikator kiseonika koristi se u metodi bound.
- ok.signal(); //Jvalja vodoniku da je kiseonik upisao svoj ID.
- bound(); //spajanje
- next.wait(); // ceka da se vodonici spoje sa njim pa onda generise H.signal() da bi se nastavio dalje proces.
- H.signal();
- }
- barrierHidro(var oxy, hidro1, var hidro2)
- {
- H.wait(idH++);
- H1id = .... ; // indetifikator prvog atoma vodonika.
- count = count + 1; //
- if(count == 2){
- H2id = ...; count = 0;
- O.signal();
- ok.wait(); // ceka id od kiseonika.
- bound()
- done.signal(); //javlja onom prvom atomu vodonika da je zavrsio.
- }
- H.signal(); // oslobadja drugi atom vodonika; UPRAVO sam izvalio gresku ako nema atoma vodonika koji ceka ovo ce da ode u vetar i tu ce
- // da mi zabode program :/
- done.wait(); //ceka na njega da se sjedini tj na tog drugog;
- bound();
- next.signal(); // javlja kiseonika da moze da pokrene sledeci vodonik, i ovde je ista greska.
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement