Ограничение рекурсивного высвобождения памяти контейнеров #72

Closed
opened 2022-09-19 21:41:55 +03:00 by lirent · 2 comments
lirent commented 2022-09-19 21:41:55 +03:00 (Migrated from dev.lirent.ru)

Добавить возможность очистки ресурсов, обеспечивающих существование контейнера, без очистки данных вложенных контейнеров.

Добавить возможность очистки ресурсов, обеспечивающих существование контейнера, без очистки данных вложенных контейнеров.
lirent commented 2022-09-19 22:04:09 +03:00 (Migrated from dev.lirent.ru)

Добавить возможность отказа от очистки ресурсов вложенных контейнеров при обновлении узла контейнера новым значением

Добавить возможность отказа от очистки ресурсов вложенных контейнеров при обновлении узла контейнера новым значением
lirent commented 2023-02-10 18:20:19 +03:00 (Migrated from dev.lirent.ru)

Контейнер, из списка поставляемых в решении, -- абстрактная сущность не владеющая, а каталогизирующая объекты (информацию о них), за исключением vtype_array.
Ограничение рекурсивного высвобождения памяти контейнеров, лежит в области описания хранимых типов. Таким образом, уничтожаемый объект может быть не очищен, если используется где-то еще, контейнер лишь гарантирует вызов метода, который МОЖЕТ высвободить ресурсы.
При очищении vtype_array ресурсы ДОЛЖНЫ быть очищены, однако, если область памяти, принадлежащая данному типу, используются где-то еще, -- есть вероятность возникновения утечек памяти.
Ответственность за контроль использования памяти, принадлежащей vtype_array лежит в области ответственности программиста, таким же образом, как и при использовании областей памяти статических массивов/стека.

Соответственно, очистка ресурсов обновляемых узлов контейнеров, -- также лежит в области описания типа, а не контейнера.

(см #77)

Контейнер, из списка поставляемых в решении, -- абстрактная сущность не владеющая, а каталогизирующая объекты (информацию о них), за исключением **vtype_array**. Ограничение рекурсивного высвобождения памяти контейнеров, лежит в области описания хранимых типов. Таким образом, уничтожаемый объект может быть не очищен, если используется где-то еще, контейнер лишь гарантирует вызов метода, который МОЖЕТ высвободить ресурсы. При очищении **vtype_array** ресурсы ДОЛЖНЫ быть очищены, однако, если область памяти, принадлежащая данному типу, используются где-то еще, -- есть вероятность возникновения утечек памяти. Ответственность за контроль использования памяти, принадлежащей **vtype_array** лежит в области ответственности программиста, таким же образом, как и при использовании областей памяти статических массивов/стека. Соответственно, очистка ресурсов обновляемых узлов контейнеров, -- также лежит в области описания типа, а не контейнера. (см #77)
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: c/libcdsb#72