1 #ifndef SUBORDINATION_PPL_TIMER_PIPELINE_HH 2 #define SUBORDINATION_PPL_TIMER_PIPELINE_HH 4 #include <subordination/kernel/act.hh> 5 #include <subordination/ppl/basic_pipeline.hh> 6 #include <subordination/ppl/compare_time.hh> 7 #include <unistdx/ipc/semaphore> 14 using Priority_queue =
18 using Priority_queue_traits =
19 priority_queue_traits<Priority_queue<T>>;
22 using Timer_pipeline_base =
23 basic_pipeline<T, Priority_queue<T>,
24 Priority_queue_traits<T>>;
32 using typename base_pipeline::kernel_type;
33 using typename base_pipeline::mutex_type;
34 using typename base_pipeline::lock_type;
35 using typename base_pipeline::sem_type;
36 using typename base_pipeline::traits_type;
61 wait_until_kernel_arrives(lock_type& lock) {
62 this->_semaphore.wait(
65 return this->has_stopped() || !this->_kernels.empty();
71 wait_until_kernel_is_ready(lock_type& lock, kernel_type* k) {
72 return this->_semaphore.wait_until(
75 [
this] {
return this->has_stopped(); }
83 #endif // vim:filetype=cpp Definition: basic_pipeline.hh:40
Definition: timer_pipeline.hh:29