PFUNC
1.0
|
#include <pfunc/predicate.hpp>
Public Types | |
typedef task_traits< ValueType > ::attribute | attribute |
typedef attribute::level_type | level_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 |
Define the waiting predicates for the cilkS task_queue_set.
typedef task_traits<ValueType>::attribute pfunc::detail::waiting_predicate_pair< cilkS, ValueType >::attribute |
typedef attribute::level_type pfunc::detail::waiting_predicate_pair< cilkS, ValueType >::level_type |
typedef bool pfunc::detail::waiting_predicate_pair< cilkS, ValueType >::result_type |
typedef ValueType* pfunc::detail::waiting_predicate_pair< cilkS, ValueType >::value_type |
pfunc::detail::waiting_predicate_pair< cilkS, ValueType >::waiting_predicate_pair | ( | value_type | previous_task | ) | [inline] |
Initialize the previous task.
bool pfunc::detail::waiting_predicate_pair< cilkS, ValueType >::own_pred | ( | value_type | current_task | ) | const [inline] |
have to ensure that we are only stealing a task that is at the same level in the spawn tree or lower. This is important to prevent thread stack explosion.
[in] | current_task | Pointer to the task that is being chosen. |
bool pfunc::detail::waiting_predicate_pair< cilkS, ValueType >::steal_pred | ( | value_type | current_task | ) | const [inline] |
Same as own_pred()
[in] | current_task | Pointer to the task that is being chosen. |
value_type pfunc::detail::waiting_predicate_pair< cilkS, ValueType >::previous_task |