Vorrei bloccare i tasti/indice in un'altra mappa in questo modo:Come usare un boost :: mutex come tipo mappato in std :: map?
std::map<int, boost::mutex> pointCloudsMutexes_;
pointCloudsMutexes_[index].lock();
Tuttavia, sto ottenendo il seguente errore:
/usr/include/c++/4.8/bits/stl_pair.h:113: error: no matching function for call to 'boost::mutex::mutex(const boost::mutex&)'
: first(__a), second(__b) { }
^
Sembra funzionare con std::vector
, ma non con std::map
. Che cosa sto facendo di sbagliato?
ci si chiede quali requisiti abbiano portato alla decisione di progettazione che una mappa di mutex sia una soluzione valida. C'è probabilmente un modo molto più elegante per ottenere quello che vuoi. –
Una hashmap concorrente – Raaj
Questo disegno non sarà una mappa hash concorrente. Sarà una mappa non-simultanea di mutex. È necessario avvolgere l'intera mappa e proteggerla con un solo mutex. –