
A preliminary documentation for a concurrent_hash_map is available: http://www.pdimov.com/cpp/concurrent_hash_map.html There exists a prototype implementation for that :-) and I'll post it online after a bit of cleanup. I have a question on the interface that hopefully may be of interest to someone. concurrent_hash_map implements the following member function: template<class F> bool find_and_visit( K const & k, F f ); that looks up the element with a key k in the map and, if found, invokes f on its associated value. This can be useful in a number of situations, but it poses the following problem: what if two threads call find_and_visit at the same time with the same k and f modifies its argument? Should the map serialize the two calls to f, or should it leave the responsibility of ensuring proper synchronization (or atomic update, if the mapped_type allows it) to the user? Thanks in advance for any comments/opinions on the interface. -- Peter Dimov http://www.pdimov.com