boost :: interprocess :: shared_memory_object :: удалить не удается - PullRequest
0 голосов
/ 07 июня 2011

Я провел некоторый тест и смог создать и удалить boost :: interprocess :: shared_memory_object в исполняемом файле C ++ / CLI без проблем. В плагине C ++ / CLI dll я могу только создать boost :: interprocess :: shared_memory_object, но удалить не удается. Я проверил, что файл существует на момент удаления - он находится в папке boost :: interprocess в подпапке с именем «20110606204418.125000». Память не была отображена каким-либо другим процессом. Есть идеи, что может быть причиной? В начале я думал, что это может быть связано с тем, что проект является dll и нацелен на CLR, но, честно говоря, я не знаю. РЕДАКТИРОВАТЬ: код удаления вызывается другим потоком, чем код создания - это запрещено?

1 Ответ

0 голосов
/ 07 июня 2011

Во время отладки я заметил, что путь к файлу, который должен быть удален внутри boost :: interprocess :: shared_memory_object :: remove, отличается от файла, созданного конструктором boost :: interprocess :: shared_memory_object - путь, который должен быть удален, указывает накорень папки «boost_interprocess», а фактически созданный файл находится в папке «boost_interprocess / 20110606204418.125000».Поэтому я сообщил об ошибке для повышения.Посмотрим, что они с этим сделают.

...