него объекты QObject, помещает их в QThread_B, время от времени через сигнал - слотовое соединения запускает довольно продолжительные функции, и все-бы хорошо, но QThread_A при некоторых внешних обстоятельствах, так же должен удалять QObject находящийся в QThread_B. И это удаление парой попадает, на время выполнения функции в QObject и тогда приложение падает.
Вопрос: Как безопасно удалить QObject из другого потока???
deleteLater()
Пробовал:( В документации пишут, что это безопасно. На деле он не дожидается окончания выполнения "долгой" функции и удаляется раньше...
Ставить флаг из первого потока. В долгой функции его проверять и сразу выходить если он стоит. После этого - deleteLater.
Спасибо. Интересный вариант. позже попробую.
Я бы на твоём месте все таки усомнился в своей реализации. Уверяю тебя, deleteLater не мог вызваться раньше, чем освободился тот поток, в который мувнут объект.
Обсуждают сегодня