SObjectizer
5.1
|
Класс задач подсистемы 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_t > | m_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. Создано системой 1.8.3.1 |