|
Патчи Если кто-то хочет выложить не свой готовый патч - не забудьте указать автора и источник.
Если кто-то хочет задать вопрос по патчу - велкам. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
24.06.2010, 21:30 | #1 |
Гость
Сообщений: n/a
|
[a bit of research] ACE Reactor usage.
Дело было вечером, делать было нечего...
Решил я подробнее посмотреть на их использование в ядре. И не зря, сразу нашёл к чему придраться. Код:
#if defined (ACE_HAS_EVENT_POLL) || defined (ACE_HAS_DEV_POLL) ACE_Reactor::instance(new ACE_Reactor(new ACE_Dev_Poll_Reactor(ACE::max_handles(), 1), 1), true); #else ACE_Reactor::instance(new ACE_Reactor(new ACE_TP_Reactor(), true), true); #endif И как мы его используем? Мы не создаем пул потоков. Мы продолжаем использовать его как обычный ACE_Select_Reactor, впустую тратя ресурсы на блокировки и прочее. Использование ACE_TP_Reactor "по ГОСТу" выглядит следующим образом (внимание, не полный код). Код:
static ACE_THR_FUNC_RETURN event_loop(void *arg) { ACE_Reactor *reactor = static_cast<ACE_Reactor*>(arg); // No-op for TP reactor, but useful for others reactor->owner(ACE_Thread::self()); reactor->run_reactor_event_loop(); } void main(int, char **) { ACE_Reactor::instance (new ACE_Reactor(new ACE_TP_Reactor, 1), 1); ACE_Thread_Manager::instance()->spawn_n (reactor_thread_num, event_loop, ACE_Reactor::instance()); return ACE_Thread_Manager::instance()->wait(); } Последний раз редактировалось Astellar; 24.06.2010 в 22:31. |
24.06.2010, 21:44 | #3 |
Гость
Сообщений: n/a
|
Патч подождет пока что, ибо он до неприличия прост, но может смысл есть какой-то именно так реактор использовать.
|
25.06.2010, 08:40 | #4 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
|
А это не связанно с тем что реалм кроме авторизации делает еще отправку патчей если они есть?
|
25.06.2010, 09:14 | #5 |
Гость
Сообщений: n/a
|
Нет. PatchHandler наследуется от ACE_Svc_Handler, но судя по всему действует вообще в обход реактора (reactor(NULL); в конструкторе) в отдельном потоке, используя напрямую дескриптор сокета. Вопроса по поводу ACE_TP_Reactor это не снимает
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[10695] Cleanup some death state enums usage. | newsbot | CMaNGOS Commits | 0 | 08.11.2010 01:50 |
Character stat research | HarpyWar | Прочая документация | 36 | 30.07.2010 11:07 |
Creature typeflags research. | newsbot | CMaNGOS Commits | 0 | 02.07.2010 04:54 |
[10081][idea] Drop usage of DOTCONFDocument. | Astellar | Принятые патчи | 8 | 20.06.2010 00:55 |
[9723] Finaly cleanup usage ventorslot values. | newsbot | CMaNGOS Commits | 0 | 10.04.2010 23:30 |