потоков. Алгоритм доступа такой:
- Несколько потоков добавляют в мапу ключи со значением 0
- Один поток получает по кд вектор и если значение из вектора является ключем в мапе, прибавляет к нулю n
- Потоки, которые добавляли значения в мапу, читают ее и жду когда значение станет x
Ключевая проблема в том, что мапа забирает владение ключом, а мне по нему потом хотелось бы отслеживать изменения. Есть raw_entry в Hashbrown, но тогда получается, что надо будет держать RwLock локнутым на чтение, чтобы иметь ссылку на String. Как можно построить безопасный интерфейс взаимодействия с мапой без deep copy ключа?
Arc<String>?
А без этого никак?
После инициализации новых ключей нет, можно ссылки на ключи давать, мб через хешбрауновский equivalence? Не до конца дочитал условие,
Можно получить ссылку на ключ, но тогда придется держать RwLock на мапу закрытым на чтение для каждого потока, который читает с мапы. А после дропа Guard’а, ключ получить уже никак будет нельзя
Обсуждают сегодня