| 195 | } |
| 196 | |
| 197 | internal::reference_count task::internal_decrement_ref_count() { |
| 198 | ITT_NOTIFY( sync_releasing, &prefix().ref_count ); |
| 199 | internal::reference_count k = __TBB_FetchAndDecrementWrelease( &prefix().ref_count ); |
| 200 | __TBB_ASSERT( k>=1, "task's reference count underflowed" ); |
| 201 | if( k==1 ) |
| 202 | ITT_NOTIFY( sync_acquired, &prefix().ref_count ); |
| 203 | return k-1; |
| 204 | } |
| 205 | |
| 206 | task& task::self() { |
| 207 | generic_scheduler *v = governor::local_scheduler(); |