- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I'm using Interl Inspector XE 2017. If I run 'Detect Deadlocks and Data Races' analysis I get a race condition dispalyed. If I run this analysis with option 'Enable debugger when problem detected', the threads mentioned by Inspecter XE are not at the dispayed code lines. I'm wondering what causes this behaviour (limitation by Inspector XE, false positive ...)
The code is compiled with gcc-6.3.1 (-std=c++14):
1 friend void intrusive_ptr_add_ref( context * ctx) noexcept {
2 ctx->use_count_.fetch_add( 1, std::memory_order_relaxed);
3 }
4 friend void intrusive_ptr_release( context * ctx) noexcept {
5 if ( 1 == ctx->use_count_.fetch_sub( 1, std::memory_order_release) ) {
6 std::atomic_thread_fence( std::memory_order_acquire);
7 deallocate_memory( ctx);
8 }
9 }
Inspector XE menitions a raced between line 2 and line 7.
thank you in advance,
Olive
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please submit this to our Online Service Center at http://www.intel.com/supporttickets so that we can properly track your support request.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page