# --------------------------------------------- # symulator algorytmow asynchronicznych source symul_lib.tcl # cykl zorientowany set liczbaWierz 10 iterate i $liczbaWierz { let i1 $i-1; if {$i1==-1} {let i1 $liczbaWierz-1} let i2 $i+1; if {$i2==$liczbaWierz} {let i2 0} set sasiedzi($i) "$i1 $i2" } fiber create $liczbaWierz { kom1_wyslij "Q $id" while {$run} { set q [OdbierzKomTypu "Q" 0] _puts "$id: odebralem $q" kom1_wyslij $q } } InicjalizacjaAsynch # --- do tego miejsca wykonac !!!!!!!!!!!!!!! set_run 0; fiber switchto 0; set_run 1; fiber restart; InicjalizacjaAsynch # restartowanie fiberow fiber switchto 0 # skok do konkretnego wierzcholka/ fibera (nr 0 w tym wypadku) pokazKomunikaty # pokazuje komunikaty w polaczeniach krokAsynch # pojedynczy krok # (losowy wybór dowolnego wierzcholka i wykonanie jego kodu # az nie ma nic do roboty w OdbierzKomTypu ...) iterate i 10 krokAsynch # 10 krokow ...