поток. Значит ли это что в случае паники порожденного потока до отправки в канал, программа зависнет? (я конкретно про этот пример). Там же join() делается после всех recv()
паника же уронит всё приложение, а не отдельный поток
До вызова child_thread.join().unwrap() не уронит вроде 🤔
Действительно, только текущий поток: https://doc.rust-lang.org/std/macro.panic.html
При панике другой конец канала (tx) дропнется при разматывании стэка, после этого recv() вернет ошибку
Залей на плейграунд
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=e57a0b4f99520d26babf2bb1e936c569 Ну тут показывает что программа убита по таймауту
tx в main всё ещё живёт, дропнулись только клоны
А, понял теперь
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=54fc5b004d169d0adde614a0d2ca1442
Обсуждают сегодня