load ./q3.so source symul_lib.tcl; set liczbaWierz 5 set sasiedzi(0) {4 1} set sasiedzi(1) {0 2} set sasiedzi(2) {1 3} set sasiedzi(3) {2 4} set sasiedzi(4) {3 0} fiber create $liczbaWierz { set lider ?; wyslij 0 $id; fiber yield; while {$run} { if {$kom(1)!=""} { set x $kom(1); if {$lider==1} { } elseif {$x>$id} { wyslij 0 $x; } elseif {$x==0} { wyslij 0 $x; set lider 0; } elseif {$x==$id} { set lider 1; wyslij 0 0; } elseif {$x < $id} { } } fiber yield; } } Inicjalizacja; proc wizualizacja {} { fiber_iterate {_puts "$id: $lider, $kom(1)"} } fiber yield; runda; wizualizacja