top | item 9558776

(no title)

luikore | 10 years ago

I think the authors want to avoid thundering herd. You can find this basic pattern in the book UNIX Network Programming.

discuss

order

jvink|10 years ago

Correct.

The accepting socket is shared between multiple workers which each have its own fd for epoll or kqueue. Because of this a form of serialising the accepts between said workers is needed to avoid unnecessary wakeups.

rdtsc|10 years ago

Hmm, thought that was fixed 10 years ago or so. I can't believe the standard accept() call will wake up all threads on a modern Linux kernel.

Maybe if it is using epoll/select/etc. it would exhibit the thundering herd issue.