Я использую версию python libtorrent. Когда я запускаю торрент-сессии в течение более длительного времени с большим количеством файлов, он падает с ошибкой:Оберните функцию в поток и проигнорируйте критические ошибки
terminate called after throwing an instance of 'boost::lock_error'
what(): boost::lock_error
так, я думал, будет обернуть функцию, связанные с торрента в отдельном потоке и когда он выходит из строя, он будет убивать только нить (вместо всего приложения):
from threading import Thread
class TWrapper (Thread) :
# ...
def run(self):
try:
run_torrent_stuff()
except:
# print message
pass
t = TWrapper()
t.run()
t.join()
# check if all OK with t, if not - restart again
Я подумал, что если библиотеки аварий, поток будет умереть, и я join
его в главном цикле. Но, когда libtorrent
падает, все приложение умирает :(
Почему ошибка обостряется вне резьбы?
(libtorrent
пример (в реальной жизни), вопрос в целом)
«Почему ошибка возникает из-за потока?» - возможно, исключение возникает в каком-то другом потоке, возможно, на libtorrent internal thread/pool? –