libstdc++
__gnu_parallel::_QSBThreadLocal< _RAIter > Struct Template Reference

#include <balanced_quicksort.h>

Public Types

typedef _TraitsType::difference_type _DifferenceType
 
typedef std::pair< _RAIter, _RAIter > _Piece
 
typedef std::iterator_traits< _RAIter > _TraitsType
 

Public Member Functions

 _QSBThreadLocal (int __queue_size)
 

Public Attributes

volatile _DifferenceType * _M_elements_leftover
 
_Piece _M_global
 
_Piece _M_initial
 
_RestrictedBoundedConcurrentQueue< _Piece_M_leftover_parts
 
_ThreadIndex _M_num_threads
 

Detailed Description

template<typename _RAIter>
struct __gnu_parallel::_QSBThreadLocal< _RAIter >

Information local to one thread in the parallel quicksort run.

Definition at line 65 of file balanced_quicksort.h.

Member Typedef Documentation

◆ _DifferenceType

template<typename _RAIter >
typedef _TraitsType::difference_type __gnu_parallel::_QSBThreadLocal< _RAIter >::_DifferenceType

Definition at line 68 of file balanced_quicksort.h.

◆ _Piece

template<typename _RAIter >
typedef std::pair<_RAIter, _RAIter> __gnu_parallel::_QSBThreadLocal< _RAIter >::_Piece

Continuous part of the sequence, described by an iterator pair.

Definition at line 72 of file balanced_quicksort.h.

◆ _TraitsType

template<typename _RAIter >
typedef std::iterator_traits<_RAIter> __gnu_parallel::_QSBThreadLocal< _RAIter >::_TraitsType

Definition at line 67 of file balanced_quicksort.h.

Constructor & Destructor Documentation

◆ _QSBThreadLocal()

template<typename _RAIter >
__gnu_parallel::_QSBThreadLocal< _RAIter >::_QSBThreadLocal ( int  __queue_size)
inline

Constructor.

Parameters
__queue_sizesize of the work-stealing queue.

Definition at line 91 of file balanced_quicksort.h.

Member Data Documentation

◆ _M_elements_leftover

template<typename _RAIter >
volatile _DifferenceType* __gnu_parallel::_QSBThreadLocal< _RAIter >::_M_elements_leftover

Pointer to a counter of elements left over to sort.

Definition at line 84 of file balanced_quicksort.h.

Referenced by __gnu_parallel::__parallel_sort_qsb(), __gnu_parallel::__qsb_conquer(), and __gnu_parallel::__qsb_local_sort_with_helping().

◆ _M_global

template<typename _RAIter >
_Piece __gnu_parallel::_QSBThreadLocal< _RAIter >::_M_global

The complete sequence to sort.

Definition at line 87 of file balanced_quicksort.h.

◆ _M_initial

template<typename _RAIter >
_Piece __gnu_parallel::_QSBThreadLocal< _RAIter >::_M_initial

Initial piece to work on.

Definition at line 75 of file balanced_quicksort.h.

Referenced by __gnu_parallel::__qsb_conquer(), and __gnu_parallel::__qsb_local_sort_with_helping().

◆ _M_leftover_parts

template<typename _RAIter >
_RestrictedBoundedConcurrentQueue<_Piece> __gnu_parallel::_QSBThreadLocal< _RAIter >::_M_leftover_parts

Work-stealing queue.

Definition at line 78 of file balanced_quicksort.h.

Referenced by __gnu_parallel::__qsb_local_sort_with_helping().

◆ _M_num_threads

template<typename _RAIter >
_ThreadIndex __gnu_parallel::_QSBThreadLocal< _RAIter >::_M_num_threads

Number of threads involved in this algorithm.

Definition at line 81 of file balanced_quicksort.h.

Referenced by __gnu_parallel::__qsb_local_sort_with_helping().


The documentation for this struct was generated from the following file: