shared pointers

Jan 29, 2020 15:21

давно подозревал, что постоянная возня руками с .data() умных указателей unique_ptr/QScopedPtr, особенно с передачей за пределы динамически созданного хозяина - намёк на плохой дизайн ( Read more... )

программирование - это 52% религии, c++

Leave a comment

Comments 4

qvz January 30 2020, 06:49:36 UTC
Так использование умных указателей вообще же не подразумевает работу с .data() .get().
Тип, положено обращаться только к методам типа, прося его что-то со своими данными сделать, либо передавать/делить владение объектом.

А иначе, да, получается, просто заметание мусора под ковер.

Reply

dervish_candela January 30 2020, 08:41:35 UTC
ну тут как ( ... )

Reply

qvz January 30 2020, 13:07:39 UTC
Эфемерные данные в стек не поместятся в общем случае. Вы правы в том, что это не проблема управления памятью, при "забывании" освободить ссылку на объект никакой мусорщик не поможет, разве что добавить время жизни к объекту, по истечении которого он будет уничтожен вне зависимости от. Но это выглядит как костыль.

Судя по вашему описанию, проблема лежит не в подсистеме воркеров, а на стороне их использования. Т.е. надо подумать над интерфейсом воркеров, который будет контроллировать пользователя. Либо, зная, что пользователи в любом случае будут как попало обращаться с данными, полностью изолировать их процессы и наложить на них разумные ограничения, по времени, памяти, денег и т.д.

Reply

dervish_candela January 30 2020, 20:33:16 UTC
спс :)

Reply


Leave a comment

Up