Removes the next element from the queue If the queue is empty the function returns \p nullptr */
| 179 | If the queue is empty the function returns \p nullptr |
| 180 | */ |
| 181 | value_type * dequeue() |
| 182 | { |
| 183 | auto pRec = m_FlatCombining.acquire_record(); |
| 184 | pRec->pVal = nullptr; |
| 185 | |
| 186 | constexpr_if ( c_bEliminationEnabled ) |
| 187 | m_FlatCombining.batch_combine( op_deq, pRec, *this ); |
| 188 | else |
| 189 | m_FlatCombining.combine( op_deq, pRec, *this ); |
| 190 | |
| 191 | assert( pRec->is_done()); |
| 192 | m_FlatCombining.release_record( pRec ); |
| 193 | |
| 194 | m_FlatCombining.internal_statistics().onDequeue( pRec->bEmpty ); |
| 195 | return pRec->pVal; |
| 196 | } |
| 197 | |
| 198 | /// Removes the next element from the queue (a synonym for \ref dequeue) |
| 199 | value_type * pop() |
no test coverage detected