[a bit of research] ACE Reactor usage.
Дело было вечером, делать было нечего...
Решил я подробнее посмотреть на их использование в ядре. И не зря, сразу нашёл к чему придраться. Код:
#if defined (ACE_HAS_EVENT_POLL) || defined (ACE_HAS_DEV_POLL) И как мы его используем? Мы не создаем пул потоков. Мы продолжаем использовать его как обычный ACE_Select_Reactor, впустую тратя ресурсы на блокировки и прочее. Использование ACE_TP_Reactor "по ГОСТу" выглядит следующим образом (внимание, не полный код). Код:
static ACE_THR_FUNC_RETURN event_loop(void *arg) |
Выкладывай тогда уж патч, если уж стал так усиленно копать в этом направлении ;)
|
Патч подождет пока что, ибо он до неприличия прост, но может смысл есть какой-то именно так реактор использовать.
|
А это не связанно с тем что реалм кроме авторизации делает еще отправку патчей если они есть?
|
Нет. PatchHandler наследуется от ACE_Svc_Handler, но судя по всему действует вообще в обход реактора (reactor(NULL); в конструкторе) в отдельном потоке, используя напрямую дескриптор сокета. Вопроса по поводу ACE_TP_Reactor это не снимает :)
|
Текущее время: 11:52. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS