Этот вопрос является возможным суб проблема с этим concurrent access and free of a data structureодновременный доступ и без кучи объекта
Другой вопрос открыт для проектирования, это один более конкретно.
struct ds
{
int x,y,z;
pthread_mutex_t mutex;
};
мне нужно детерминированное решение с помощью которого можно одновременно получать доступ к 1 объект типа DS и освободить ее.
Сдерживает:
- Вы можете сделать мьютекс указатель, но не может взять его из объекта.
Реальная проблема:
Free не может быть сделано держа замок, потому что, то память, занимаемую замком также теряется.
Я прочитал много статей и статей по пересчету, но каждый из них держит замок вне ds. Я хочу решение, где я могу хранить блокировку или ссылку на блокировку внутри ds.
Я предполагаю, что проблема сводится к тому, что во время свободного времени нет внешних ссылок на объект. Поэтому, если внешние ссылки являются указателями, нам понадобится еще одна блокировка вне ds, чтобы гарантировать, что объект не исчез. Вот почему они изобрели shared_ptr в boost. – Saurabh