SObjectizer  5.1
Открытые члены | Закрытые типы | Закрытые данные | Полный список членов класса
Класс so_sysconf_4::impl::task_queue_t

Класс задач подсистемы SO Sysconf (thread-safe) Подробнее...

Открытые члены

 task_queue_t (unsigned int bulk_task_size)
 
void push (const ref_task_t &task)
 Поставить задачу. Подробнее...
 
void push (const task_vector_t &task_vector)
 Поставить список задач. Подробнее...
 
bool pop (task_vector_t &task_vector)
 Взять последовательность задач. Подробнее...
 
void signal_stop (bool enable_watchdog=false)
 Остановить очередь. Подробнее...
 
void signal_shutdown_completed ()
 Уведомление очереди о том что so_sysconf завершается штатным образом. Подробнее...
 
bool wait_for_completion (unsigned int timeout_msec)
 Ожидать нормального завершение программы.
 

Закрытые типы

typedef bool stop_flag_t
 Флаг завершения работы.
 

Закрытые данные

std::queue< ref_task_tm_task_queue
 Очередь задач.
 
ACE_Thread_Mutex m_queue_mutex
 Мьютекс для синфхронизации постановки в очередь и выборки из очереди.
 
ACE_Condition< ACE_Thread_Mutex > m_has_items_condition
 Условие на наличие задач в очереди.
 
plain_event_t m_shutdown_watchdog
 Условие на штатное завершение работы приложения.
 
stop_flag_t m_must_stop
 Флaг остановки обслуживания очереди.
 
const unsigned int m_bulk_task_size
 Максимальный размер последовательности задач которое может отдавать метод pop.
 

Подробное описание

Класс задач подсистемы SO Sysconf (thread-safe)

Методы

bool so_sysconf_4::impl::task_queue_t::pop ( task_vector_t task_vector)

Взять последовательность задач.

Пока метод возвращает true надо продолжать обрабатывать задачи. Если метод вернул false , то следует завершить обработку задач.

Перекрестные ссылки m_bulk_task_size, m_has_items_condition, m_must_stop, m_queue_mutex и m_task_queue.

Используется в so_sysconf_4::impl::processor_thread_t::svc().

void so_sysconf_4::impl::task_queue_t::push ( const ref_task_t task)

Поставить задачу.

Ставит task в конец очереди.

Перекрестные ссылки m_has_items_condition, m_queue_mutex и m_task_queue.

void so_sysconf_4::impl::task_queue_t::push ( const task_vector_t task_vector)

Поставить список задач.

Ставит массив задач. Порядок, как в task_vector.

Перекрестные ссылки m_has_items_condition, m_queue_mutex и m_task_queue.

void so_sysconf_4::impl::task_queue_t::signal_shutdown_completed ( )

Уведомление очереди о том что so_sysconf завершается штатным образом.

Когда процессор задач получает сигнал завершения, он начинает ждать события штатного завершения so_sysconf. Если за отведенное время не поступает сигнала, что so_sysconf завершил свою работу, то процессор инициирует abort() приложения.

Перекрестные ссылки m_shutdown_watchdog и so_sysconf_4::impl::plain_event_t::trigger_event().

Используется в signal_stop().

void so_sysconf_4::impl::task_queue_t::signal_stop ( bool  enable_watchdog = false)

Остановить очередь.

Выставляет флаг об остановке. и отпускает run_tasks.

Аргументы
enable_watchdogИспользовать ли при остановке обработки очереди watchdog.

Перекрестные ссылки m_has_items_condition, m_must_stop, m_queue_mutex и signal_shutdown_completed().


Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 12:56:25. Создано системой  doxygen1.8.3.1 Intervale SourceForge.net Logo