Разлики между задействани от ниво и задействани от ръба в epoll

ниво

В момента пиша софтуер, който получава дескриптори, готови за I/O, използвайки epoll.

Прочетох мана, има нещо не съвсем ясно (за мен) написано за режимите, задействани от ниво и от ръба.

Разбрах го написано по следния начин (може да греша):

В случай на задействане на ръба (НЕ режимът по подразбиране, когато е посочен EPOLLET):
1. изпращаме ни известно количество данни
2. правим epoll_wait (), той ни казва дескриптор с готови данни
3. извличаме част от данните (не всички)
4. отново направете epoll_wait (), който се блокира за неопределено време поради наличието на данни в буфера.
Това поведение се дължи на факта, че този режим отчита само промяна в попълването на вътрешни буфери и ако данните не бъдат извлечени напълно, такава промяна не настъпва.
Съответно, за да избегнете тази ситуация, трябва да извлечете всичко от буферите

И сега - това, което не разбрах от мана:
- Как ще се държи повикването epoll_wait () в 4-та точка в задействания от нивото режим? ще бъде блокиран?
- какви са изричните/неявните предимства и недостатъци на всеки от режимите?

PS: googled. Гугли само същата мана и същата мана в ужасен машинен превод

задействани