LINUX.ORG.RU

История изменений

Исправление kvpfs, (текущая версия) :

Ну вообще твоя хотелка решение имеет - заставить другой тред убиться и разрушить все стековые объекты. Но учти, что это тоже такое себе, никто не знает чем убиваем тред занимался, также может что-то «подтекать», если тред брал какой-то ресурс, не закончил, а его прервали. Здесь решение. Т.е. шлем треду сигнал, обработчик сигнала генерит исключение, стек разматывается. Если исключение не было поймано в каком-нибудь обработчике, то будет вызван terminate() (ожидаемо, нжно повесить свою заглушку на обработчик terminate’a).

В общем это тоже костыль, и в либе могут быть сюрпризы в виде catch(…), но есть вероятность, что с некоторой долей костыльности и вероятностью подтеканий работать будет.

Исходная версия kvpfs, :

Ну вообще твоя хотелка решение имеет - заставить другой тред убиться и разрушить все стековые объекты. Но учти, что это тоже такое себе, никто не знает чем убиваем тред занимался, также может что-то «подтекать», если тред брал какой-то ресурс, не закончил, а его прервали. Здесь решение. Т.е. шлем треду сигнал, обработчик сигнала генерит исключение, стек разматывается. Если исключение не было поймано в каком-нибудь обработчике, то будет вызван terminate() (ожидаемо, нжно повесить свою заглушку на обработчик terminate’a).

В общем это тоже костыль, и в либе могут быть сюрпризы в виде catch(…), но есть вероятность, что с некоторой долей костыльности и подтеканий работать будет.