«« ( Date ) »» // «« ( Thread ) »» // drs - 2006

pitanje, zad. 58

by andrejad
petak, 27. januar 2006 - 20:43.

ne znam da li je ova lista namenjena samo obavestenjima ili se mogu postavljati i neka pitanja u vezi predmeta.
ali, za svaki slucaj da pitam:

da li je ovo korektno resenje zadatka 58 (readers/writers problem u linda-i), i ako nije zasto nije?

------------------------

rd() {
int i;
int rdn;
while(1) {
in("red", ?i);
out("red", ++i);
rd("mozete_citati");
in("rd_num", ?rdn);
out("rd_num", ++rdn);
citanje();
in("rd_num", ?rdn);
out("rd_num", ++rdn);
}
}

wr() {
int i;
while(1) {
in("red", ?i);
out("red", ++i);
in("mozete_citati");
in("rd_num", 0); // ceka da bude 0?
pisanje();
out("mozete_citati");
}
}

initialize() {
int i;
out("red", 0);
out("rd_num", 0);
for(i=0; i<MAX; i++) {
eval(rd());
eval(wr());
}
}