# Does the poll()ing a shared pipe bug also affects nginx?

**URL:** <https://www.ruby-forum.com/t/does-the-poll-ing-a-shared-pipe-bug-also-affects-nginx/200617>\
**Category:** NGINX\
**Created:** [December 17, 2010, 1:48pm UTC](https://www.ruby-forum.com/t/does-the-poll-ing-a-shared-pipe-bug-also-affects-nginx/200617 "2010-12-17T13:48:42Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/77aa72/32.png) [@Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/u/Dobai-Pataky_BSSSSl)\
**Post date:** [December 17, 2010, 1:48pm UTC](https://www.ruby-forum.com/t/does-the-poll-ing-a-shared-pipe-bug-also-affects-nginx/200617/1 "2010-12-17T13:48:42Z")

</div>

Hello,

At the dovecot mailing list there has been a discussion about what  
seems to be a bug where, in linux, systems poll()ing a shared pipe  
triggers unnecessary context switches.

Does ningx also poll()s shared pipes?

The bug report (from dovecot author):  
[http://marc.info/?l=linux-kernel&m=129243588809986&w=2](http://marc.info/?l=linux-kernel&m=129243588809986&w=2)  
(full patch here: [http://hg.dovecot.org/dovecot-2.0/rev/b0ec48006d57](http://hg.dovecot.org/dovecot-2.0/rev/b0ec48006d57))

And the answer from the linux kernel people:  
[https://lkml.org/lkml/2010/12/15/470](https://lkml.org/lkml/2010/12/15/470)

Regards,

M.

---

<div class="post-metadata">

**Author:** ![larios](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/bc79bd/32.png) [@larios](https://www.ruby-forum.com/u/larios)\
**Post date:** [December 17, 2010, 2:47pm UTC](https://www.ruby-forum.com/t/does-the-poll-ing-a-shared-pipe-bug-also-affects-nginx/200617/2 "2010-12-17T14:47:47Z")

</div>

Hello!

On Fri, Dec 17, 2010 at 12:47:20PM +0000, Mark A. wrote:

> And the answer from the linux kernel people:  
> [Making sure you're not a bot!](https://lkml.org/lkml/2010/12/15/470)

No, this particular problem shouldn’t affect nginx. It uses  
socketpairs (not pipes), waits for read events (not write), and  
they aren’t actually shared (though each worker has sockets to  
other workers, each worker only waits on his own socket and  
doesn’t touch sockets to other workers).

Maxim D.
