LINUX.ORG.RU

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

Исправление no-such-file, (текущая версия) :

Опять проблема. Как только мы отпустим mutex, метод release(ID) почистит объект который мы только что положили

Тебе нужно обеспечить, чтобы make/release работали бы только из одного треда. Для этого нужен вспомогательный класс, через объект которого будут вызываться make/release. На время существования такого объекта доступ к make/release лочится.

Что-то вроде этого

{
  MakeReleaseLock mr(repo.getMakeReleaseLock()); // получили интерфейс make/release и залочили его

  A a=mr.make(123);
  // release не может быть вызван из другого треда

} // Освобождается лок, теперь другой тред может разлочится и получить интерфейс make/release

Исходная версия no-such-file, :

Опять проблема. Как только мы отпустим mutex, метод release(ID) почистит объект который мы только что положили

Тебе нужно обеспечить, чтобы make/release работали бы только из одного треда. Для этого нужен вспомогательный класс, через объект которого будут вызываться make/release. На время существования такого объекта доступ к make/release лочится.

Что-то вроде этого

{
  MakeReleaseLock mr(repo.getMakeReleaseLock()); // получили интерфейс make/release и залочили его

  A a=mr.make(123);
  // release не может быть вызван из другого треда


} // Освобождается лок, теперь другой тред может разлочится и получить интерфейс make/release