Re[6]: Почему в расте отсутствует выброс исключений?
От: DarkEld3r  
Дата: 06.12.22 09:35
Оценка: +2
Здравствуйте, Философ, Вы писали:

Ф>А какие именно подробности тебе нужны? Незакрытых файлов, не освобождённых объектов синхронизации и инконсистентного состояния программы не достаточно? По-моему вполне. Потоки убивать нельзя!


У меня складывается впечатление, что ты не разобрался, но уже начал громко орать. В расте нельзя "убить поток". Ну кроме как получив нативный хендл и сделав это средствами системного апи, но это можно сделать везде, где можно получить этот самый хендл и к языку оно отношения не имеет.

Паника, о которой говорилось выше — это просто "исключение", которое разматывает стек (есть альтернативный режим в котором паника — это немедленное завершение приложения). Никаких проблем при этом не возникает. Можно, конечно, писать код небезопасный к исключениям, но это везде так. И я бы сказал, что в расте это немного сложнее: повсеместно используется RAII и глобальное состояние не поощряется.

Когда-то давно панику можно было перехватить исключительно на границе потоков, а не в произвольный момент. Из-за этого периодически всплывает связь паники с потоками.

Ф>Странно, что ты только про этот метод спросил, а вот про TerminateThread() умолчал.


Честно говоря, я вообще не понял на что по ссылке надо обращать внимание, поэтому и переспросил. С .NET дела практически не имел. Спорить с тем, что прибить поток в произвольный момент ни к чему хорошему не приведёт я не буду.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.