补丁的diff文件在这里
http://leaf.dragonflybsd.org/~sephe/ngx_soreuseport.diff
该补丁只是一个简单实现演示,很多东西没有考虑到,作者也只是简单验证了使用REUSEPORT后的效果
(正式补丁后来正式提交了 见我的博客: http://blog.youkuaiyun.com/mumumuwudi/article/details/47051235 )
------------------------------------------------------------------------------------------
The basic idea of the above patch is:
- Defer the listen socket creation until work processes are forked
- Work process creates listen socket, and set SO_REUSEPORT before bind(2)
- Accept mutex is no longer needed, since worker process is not contended on the single
listen socket anymore
基本实现思想:
----等工作进程创建后才开始监听listen socket
----工作进程创建listen socket, 在bind调用之前设置SO_REUSEPORT选项
----Accpet_mux互斥锁已经不需要了,因为所有工作进程不在使用同一个listensocket
----------------------------------------------------------------------------------------
下面主要对该diff文件加了一下注释:
# HG changeset patch
# User Sepherosa Ziehau <sepherosa@gmail.com>
# Date 1374824628 -28800
# Fri Jul 26 15:43:48 2013 +0800
# Node ID 55ad072b8934d3eea6d84c3c694c5f8bd7b37a70
# Parent 6d73e0dc4f647afd13a9daafc7cc7b061b2689dc
#Initial SO_REUSEPORT support
//**配置相关,不详细解释**
static ngx_conf_enum_t ngx_d