int main() { // Создаем нить таймера. std::auto_ptr< so_4::timer_thread::timer_thread_t > timer_ptr( so_4::timer_thread::simple::create_timer_thread() ); // Создаем диспетчер. std::auto_ptr< so_4::rt::dispatcher_t > disp_ptr( so_4::disp::one_thread::create_disp( *timer_ptr ) ); ... // Объект диспетчер и объект таймер будут уничтожены // автоматически при выходе из main(). }
В версии 4.2.6 для создания диспетчера с одной рабочей нитью и с активными объектами реализованы дополнительные функции create_disp, которые получают два аргумента: указатель на объект таймер и флаг, определяющий, что должен делать диспетчер с таймером в своем деструкторе. Если этот флаг имеет значение so_4::auto_destroy_timer, то объект таймер автоматически уничтожается диспетчером.
Это позволяет переписать приведенный выше пример следующим образом:
int main() { // Создаем диспетчер. std::auto_ptr< so_4::rt::dispatcher_t > disp_ptr( so_4::disp::one_thread::create_disp( // И таймер для диспетчера. so_4::timer_thread::simple::create_timer_thread(), // Таймер будет автоматически уничтожен. so_4::auto_destroy_timer ) ); ... // Объект диспетчер и объект таймер будут уничтожены // автоматически при выходе из main(). }
Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:48 2008. Создано системой 1.5.6 |