>[оверквотинг удален]
>>пока клинет не пришлет хотя бы что то
>>kevent не сработает, и выдаст таймаут по которому ожидает (в параметрах kevent)
>>на неблокирующих сокетах это колосальный профит
>
>Сузим рамки. Неблокирующиеся сокеты, TCP.
>Смотрите. по дефолту kevent будет дергаться на каждую порцию пакетов в рамках
>TCP таймаута. Т.е. в определенной ситуации kevent() будет нас дергать на
>каждый байт.
>Этот флаг позволяет задать минимум принятых данных при котором event считается сработавшим.
>для этих целей настраиваеться tcp окно уже в самой системе(тюнинг системы вообще делается)
но реальных ситуаций когда должны передаваться огромные данные
а начинают передаваться по байту
я никогда не сталкивался
>[оверквотинг удален]
>>при неблокирующем сокете совсем другая логика
>>можно добавить в очередь kevent, 10000 сокетов и более (65536 лимит)
>>и обработать сразу в один присест не while () kevent, как вы
>>говорите
>>а while () data[]
>>что в двойне профит
>
>вы так и не поняли)
>тут ваш код и любой другой не отличаются, реализация может быть любой
>но схема всегда одна:
согласен
>[оверквотинг удален]
> for (i = 0; i < n; i++) {
> switch(eventlist[i]->filter){
> ...
> case EVFILT_READ:
> /*
> * Пусть тут мы поймали
>event на listen() сокете.
> * Зовем accept().
> * eventlist[i]->data = сколько раз мы можем сделать accept() без EWOULDBLOCK.
> */
зачем так усложнять?
если в udata можно передать адресс процедуры еще на этапе EV(ADD, some_accept,..
а здесь уже звать эту процедуру
->udata();
которая и сделает accept и остальное что надо, к примеру уже добавит
дополнительные EV(ADD, some_recv,....
> ...
> }
> }
>}
>
>Я вам пытаюсь объяснить, что kevent() в event'e для listen() сокета информирует
я понял
но смысла и профита в этом не вижу
пока ваш фильтр с вашей логикой будет информировать вас
моя логика будет уже обрабатывать
>о числе входящих конектов, готовых к accept. Которые вы обработаете по
>1. проходя каждый раз
>через вызов kevent(), а я [да да и nginx) через for (j
>= 0; j<eventlist[i]; j++) accept();
что еще раз?
а я это запустил еще в функции some_accept, смотрите выше
>
>
>>и что то мне подсказывает чутье, что если nginx переделать по моей
>>модели работы kevent
>>то выиграш в производительности может подняться в разы
>
>Извините, я не в коей мере не хочу вас обидеть, но только
>упасть, не в разы, но %20.
я все же останусь при своем мнении
потому что мне нет смысла получать дополнительный евент с data что бы знать количество ожидающих listen
я их уже на этом этапе буду обрабатывать
без дополнительного вызова kevent
чего то я тоже уже под устал.