LINUX.ORG.RU

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

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

А почему тебе надо избавиться от «необходимости» вызова какого-либо метода участвующего в деструкции нижележащей зависимой сущности?

В качестве защиты от дурака, чтобы этот вызов был не забыт.

Чем не засунуть слоты в одну пачку и спокойно ими манипулировать? Где слот, если сам по какой-то причине хотеть завершится — пусть сообщит вышестоящему, мол, давай, ломай меня полностью?

Я из этого понял только первое предложение) С самими по себе слотами никаких проблем нет. Есть проблема в том, что их дергает io_service::dispatch() из потока, который запущен в BaseActor и который продолжает работать во время разрушения акторов, а приведенные конкретные акторы, соответственно, генерируют сигналы, которые уже разрушены между моментом вызова деструкторов наследника и деструктора базового класса. Надеюсь, понятно написал. В общем, проблема сродни вызову виртуальной функции из деструктора, базового класса, только виртуальная функция в данном случае дергается не деструктором, а внешним объектом.

Исправление asaw, :

А почему тебе надо избавиться от «необходимости» вызова какого-либо метода участвующего в деструкции нижележащей зависимой сущности?

В качестве защиты от дурака, чтобы этот вызов был не забыт.

Чем не засунуть слоты в одну пачку и спокойно ими манипулировать? Где слот, если сам по какой-то причине хотеть завершится — пусть сообщит вышестоящему, мол, давай, ломай меня полностью?

Я из этого понял только первое предложение) С самими по себе слотами никаких проблем нет. Есть проблема в том, что их дергает io_service::dispatch() из потока, который запущен в BaseActor и который продолжает работать во время разрушения акторов, а приведенные конкретные акторы, соответственно, генерируют сигналы, которые уже разрушены между моментом вызова деструкторов наследника и деструктора базового класса. Надеюсь, понятно написал.

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

А почему тебе надо избавиться от «необходимости» вызова какого-либо метода участвующего в деструкции нижележащей зависимой сущности?

В качестве дащиты от дурака, чтобы этот вызов был не забыт.

Чем не засунуть слоты в одну пачку и спокойно ими манипулировать? Где слот, если сам по какой-то причине хотеть завершится — пусть сообщит вышестоящему, мол, давай, ломай меня полностью?

Я из этого понял только первое предложение) С самими по себе слотами никаких проблем нет. Есть проблема в том, что их дергает io_service::dispatch() из потока, который запущен в BaseActor и который продолжает работать во время разрушения акторов, а приведенные конкретные акторы, соответственно, генерируют сигналы, которые уже разрушены между моментом вызова деструкторов наследника и деструктора базового класса. Надеюсь, понятно написал.