- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to use tbb’s concurrent_hash_map to increase my application’s concurrent performance. Read up about it and implemented it
according to my application but I am seeing crashes..
So, my application is a multi threaded application where I am storing pairs, key is char* and the value is integer. Pseudo code looks like this:
void storeName(const char * name) { int id=0; // This creates an pair object of name and index pair object(name); // concurrent_hash_table is an object of tbb::concurrent_hash_map and is declared in .h file // read_lock is a const accessor for reading. This find function searches for char* in the table // and if not found, create a write_lock. bool found = concurrent_hash_table.find(read_lock, name); if (found == FALSE) { concurrent_hash_table.insert(write_lock, name); // Get integer id somehow. write_lock->second = id; write_lock.release(); } else { // if the name is found in the table then get the value and release it later id = read_lock->second; read_lock.release(); } }
As per my understanding, I am good with the implementation but as I said, there are multiple crashes coming when find returns me FALSE.
Crash have traces of mutexs as well.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Rohit,
the pseudocode looks reasonable; the problem must be somewhere else.
Could you provide some more information - ideally a reproducer (see for example Stack Overflow recommendations for this), or at least a stack trace for the crash?
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page