// demo06.ck // // Készítette: // Kaluzsa Péter - ELTE - 2012/2013-2 // // eventek // // függvények hívhatóak külön shredben // új esemény deklarálása Event jel; Event szignal; // az adott eseményt váró shred (szál) fun void eventShred( Event event, string msg) { //végtelen ciklusban while (true) { // várjuk az eseményt event => now; //<<>>; chout <= msg <= IO.newline(); } } // létrehozzuk az eseményt fogadó szálakat spork ~ eventShred(jel, "Alma"); spork ~ eventShred(jel, "Körte"); spork ~ eventShred(jel, "Citrom"); spork ~ eventShred(szignal, "Alfa"); spork ~ eventShred(szignal, "Béta"); // végtelen ciklusban while (true) { // 50-50% eséllyel if (maybe) { // egytlen "jel" eseményre várónak jelzünk jel.signal(); 1000::ms => now; } else { // az összes "szignal" eseményre várónak jelzünk szignal.broadcast(); 3000::ms => now; } }