pub fn tick_tock(cells: &[LifeSender]) {
    // compute state and render changes
    cells.iter().for_each(|s| s.send(LifeCmd::Tick).unwrap());
    sync();
    // publish changes to neighbors
    cells.iter().for_each(|s| s.send(LifeCmd::Tock).unwrap());
    sync();
}
// compute state, render it, then publish changes to the neighbors
compute state, render it, then publish changes to the neighbors
compute state render it then publish changes to the neighbors
pub fn tick_tock(cells: &[LifeSender]) {
    // compute state and render changes
    cells.iter().for_each(|s| s.send(LifeCmd::Tick).unwrap());
    sync();
    // publish changes to neighbors
    cells.iter().for_each(|s| s.send(LifeCmd::Tock).unwrap());
    sync();
}
pub fn tick_tock ( cells : & [ LifeSender ] ) { // compute state and render changes cells . iter ( ) . for_each ( | s | s . send ( LifeCmd :: Tick ) . unwrap ( ) ) ; sync ( ) ; // publish changes to neighbors cells . iter ( ) . for_each ( | s | s . send ( LifeCmd :: Tock ) . unwrap ( ) ) ; sync ( ) ; }
compute state, render it, then publish changes to the neighbors
compute state render it then publish changes to the neighbors
cells
&[LifeSender]