ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[3]: pselect



On Tue, 21 Mar 2006, Evgeny Stepanischev wrote:

Игор,  может  интересно  будет, в новом ядре Linux 2.6.16 появились
системные  вызовы  pselect/ppoll,  я  не  читал  для чего это, лишь
увидел краем глаза про обработку событий. Даю линк:

http://lwn.net/Articles/164887/

pselect() и ppoll() позволяют лишь синхронизировать обработку файловых
дескрипторов и сигналов. Масштабируемости они не добавляют. Единственное
место, где их можно использовать в nginx'е - это мастер-процесс, но
там сейчас используется sigsuspend() как общий знаменатель для всех
платформ.

А что скажешь поводу вызова splice как замены sendfile?

Насколько я знаю, splice() ещё не вошёл в ядро. Его, возможно, можно
будет использовать в imap прокси. Замена sendfile()а на splice() для
дисковых операций - шило на мыло.

Да, похоже, не вошло ещё. Кстати, по ссылке в комментариях есть:

Using  sendfile()  is  just  a shortcut for read() followed by write()
with  the  same  buffer  and length; it avoids copying into and out of
userspace.  The  difference  with  splice()  is  that  the reading and
writing  will  happen  automatically  as  data  becomes available, not
requiring  userspace  to  perform  additional  system  calls,  need to
determine optimal buffer sizes, etc.

Ещё не понятно, как splice() будет вести себя с неблокирющимися сокетами.


Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.