Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.
2455 Discussions

Non-blocking access to concurrent_hash_map ?


I am wondering whether I can access concurrent_hash_map in the non-blocking fashion.
If I understand correctly,

bool find( accessor& result, const Key& key )

would acquire the write lock, and other threads trying to acquire the write lock for the same key would wait until
the write lock is released, right?

Is it possible for me to just 'try' the write lock? That is, a thread will try to acquire the write lock,
but if the entry is already write-locked then I would like to make it move on rather than being blocked
until the write lock gets released.

Thanks in advance,
Hyokun Yun 

0 Kudos
1 Reply
Black Belt

Apparently not, but why would you want that? Threads are supposed to hold a write lock only as shortly as possible. Consider doing something with const_accessor instead (the documentation appears to be negligent about specifying whether multiple threads can concurrently hold a const_accessor to the same element?), concurrent_unordered_map, ...

0 Kudos