Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

AppCore bug found and fixed...

New Contributor I
I found and fixed the last bug in AppCore wrt SMR and the node cache.
AppCore should now be basically bug free, I am currently verifying that. You
should probably re-download. Again, the bug is very subtle hard to trip. It
had to do with the way the lock-free single-producer/consumer queue
allocated its very first dummy node. The broken code simple did not set the
fp_dtor member of the dummy node to null. Stupid me!!!

Here is how you would reproduce it:
1. create a new queue object
2. enqueue/dequeue an object with Thread A
3. pop the bad node from the cache in Thread A
4. collect the bad node into Thread A SMR cache
5. join and/or scan Thread A SMR cache
6. SMR scanner can sometimes crash when it iterates over the bad node by
calling a corrupted deferred callback function pointer, if it does goto step
7. BOOM!

0 Kudos
0 Replies