From a924f0b96c6baec1557a5f595d013efd36c24773 Mon Sep 17 00:00:00 2001 From: Marcin Gogolewski Date: Sat, 1 Dec 2018 16:15:51 +0000 Subject: [PATCH] =?UTF-8?q?Prze=C5=9Blij=20pliki=20do=20'Wyk=C5=82ady'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Wykłady/prod-kons.cm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Wykłady/prod-kons.cm diff --git a/Wykłady/prod-kons.cm b/Wykłady/prod-kons.cm new file mode 100644 index 0000000..f6465b8 --- /dev/null +++ b/Wykłady/prod-kons.cm @@ -0,0 +1,40 @@ +monitor prod_kons { + int produkt; + int nowys; + condition nowy, uzyty; + void dodaj_element(int pr){ + if(nowys==1) waitc(uzyty); + produkt=pr; + nowys=1; + signalc(nowy); + } + int pobierz_element(){ + if(!nowys) waitc(nowy); + nowys=0; + signalc(uzyty); + return produkt; + } + init { + nowys = 0; + } +} + + +void producent(){ + int i; + for(i=0;i<50;i++){ + dodaj_element(i); + } +} +void konsument(){ + int i; + for(i=0;i<50;i++){ + cout << pobierz_element() << endl;; + } +} + +main(){ + cobegin{ + producent(); konsument(); + } +}