2013-06-19 9 views
0

У меня есть некоторые вопросы по Libevent приоритета событийLibevent: некоторые вопросы по поводу приоритета событий и `event_priority_set()`

1, что является приоритетом диапазон номеров?

2 в ручном, это говорит By default, libevent assigns the middle priority to all events unless their priority is explicitly set., а что такое точный номер приоритета по умолчанию?

3 Когда приоритет выше, число меньше или больше?

4 Существуют две функции, связанные с приоритетом события в libevent. event_priority_init() и event_priority_set, в чем разница между ними?

5 Каковы значения возврата для event_priority_set (struct event * ev, int pri)? Я замечаю, что в статье написано что-то вроде: when an event is ready, it can't be set and calling of this function returns -1. Я действительно не понимаю, что это значит? может кто-нибудь объяснить немного? благодаря!

6 Могу ли я изменить приоритет события после его регистрации. Например, в начале я установил приоритет 10, позже я установил его на 5, затем я установил его на 10, blalba

BTW: в настоящее время мой base = event_init(); event_base_priority_init (базовый, 4);

event_set(ev, sockfd, EV_READ, callback, arg); 
event_base_set(base, ev); 
event_add(ev, NULL); 
event_priority_set(&ev, 2); 

..... 
// set and add some other events 
.... 

event_base_dispatch(base); 

он работает без ошибок, но я не знаю, является ли место event_priority_set(&ev, 2) правильно или нет, поэтому я не знаю, будет ли приоритет установлен или нет.

ответ

1

Ничего здесь вы не найдете ответ в большой книге, написанной Ник:

http://www.wangafu.net/~nickm/libevent-book/Ref4_event.html

1/Вы можете установить диапазон по телефону event_base_priority_init().

2/Если вы не устанавливаете приоритет, «по умолчанию это количество очередей в базе событий, разделенное на 2.»

3/Нижнее число является более высоким приоритетом.

4 Вы должны использовать event_base_priority_init() вместо event_priority_init(), который устарел. event_base_priority_init() устанавливает количество приоритетов для базы, а event_priority_set() устанавливает приоритет для события.

5 Вы не можете использовать event_priority_set() для уже добавленного к циклу событий (event_add()).

6/Сначала необходимо удалить его из цикла событий с помощью event_del().

+0

'по умолчанию - количество очередей в базе событий. каково это по умолчанию количество очередей в базе событий? – misteryes

+0

По умолчанию существует только одна очередь приоритетов. –

+0

для 5, вы имеете в виду, что 'event_priority_set()' должно быть до 'event_add()', PLS увидеть мое обновление. благодаря! – misteryes

 Смежные вопросы

  • Нет связанных вопросов^_^