PFUNC 1.0
|
#include <pfunc/predicate.hpp>
Public Types | |
typedef task_traits< ValueType > ::attribute | attribute |
typedef task_traits< ValueType > ::functor | functor |
typedef compare_task_ptr < attribute, functor > | compare_type |
typedef bool | result_type |
typedef ValueType * | value_type |
Public Member Functions | |
waiting_predicate_pair (value_type previous_task) | |
bool | own_pred (value_type current_task) const |
bool | steal_pred (value_type current_task) const |
Public Attributes | |
value_type | previous_task |
compare_type | comp |
Define the waiting stealing predicate for the priority queue type. We have to ensure that we are stealing a task, which has at least the same priority as the one that we are waiting on. This prevents deadlocks from occuring.
typedef task_traits<ValueType>::attribute pfunc::detail::waiting_predicate_pair< prioS, ValueType >::attribute |
typedef compare_task_ptr<attribute, functor> pfunc::detail::waiting_predicate_pair< prioS, ValueType >::compare_type |
typedef task_traits<ValueType>::functor pfunc::detail::waiting_predicate_pair< prioS, ValueType >::functor |
typedef bool pfunc::detail::waiting_predicate_pair< prioS, ValueType >::result_type |
typedef ValueType* pfunc::detail::waiting_predicate_pair< prioS, ValueType >::value_type |
pfunc::detail::waiting_predicate_pair< prioS, ValueType >::waiting_predicate_pair | ( | value_type | previous_task | ) | [inline] |
Initialize the previous task.
bool pfunc::detail::waiting_predicate_pair< prioS, ValueType >::own_pred | ( | value_type | current_task | ) | const [inline] |
Only pick a task that has lower priority than the task which we are waiting to complete.
[in] | current_task | Pointer to the task that is being chosen. |
bool pfunc::detail::waiting_predicate_pair< prioS, ValueType >::steal_pred | ( | value_type | current_task | ) | const [inline] |
Same as own_pred()
[in] | current_task | Pointer to the task that is being chosen. |
compare_type pfunc::detail::waiting_predicate_pair< prioS, ValueType >::comp |
value_type pfunc::detail::waiting_predicate_pair< prioS, ValueType >::previous_task |