)]}'
{
  "commit": "c86ce4b9c0b6893370a6e8577c5c572023efcc12",
  "tree": "8a458d848d86e6b0e7f9108fd1b792d709091965",
  "parents": [
    "90dd638654a559e75e1741fa9f54773c5c154a0d"
  ],
  "author": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Wed May 20 15:51:56 2015 +0300"
  },
  "committer": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Wed May 20 15:51:56 2015 +0300"
  },
  "message": "The \"reuseport\" option of the \"listen\" directive.\n\nWhen configured, an individual listen socket on a given address is\ncreated for each worker process.  This allows to reduce in-kernel lock\ncontention on configurations with high accept rates, resulting in better\nperformance.  As of now it works on Linux and DragonFly BSD.\n\nNote that on Linux incoming connection requests are currently tied up\nto a specific listen socket, and if some sockets are closed, connection\nrequests will be reset, see https://lwn.net/Articles/542629/.  With\nnginx, this may happen if the number of worker processes is reduced.\nThere is no such problem on DragonFly BSD.\n\nBased on previous work by Sepherosa Ziehau and Yingqi Lu.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b90ba3c460537df96e09092a3bcd78322fd9da5b",
      "old_mode": 33261,
      "old_path": "auto/unix",
      "new_id": "595f905cfd2b3648eb880a0e63ed807dd61fdbae",
      "new_mode": 33261,
      "new_path": "auto/unix"
    },
    {
      "type": "modify",
      "old_id": "52b97ce89b41081d5cdd0267368f0fc994fac7ae",
      "old_mode": 33188,
      "old_path": "src/core/ngx_connection.c",
      "new_id": "04a365a764fa250a03967122cffbbab567d48e7a",
      "new_mode": 33188,
      "new_path": "src/core/ngx_connection.c"
    },
    {
      "type": "modify",
      "old_id": "27bb8a99c4a6bc149702475a16ab409988949bdc",
      "old_mode": 33188,
      "old_path": "src/core/ngx_connection.h",
      "new_id": "a49aa9579ed2e39ada820fd76a20015c75d97c1b",
      "new_mode": 33188,
      "new_path": "src/core/ngx_connection.h"
    },
    {
      "type": "modify",
      "old_id": "4852e3bbedccb4f2338e0b0d8d16f0ab583d9df0",
      "old_mode": 33188,
      "old_path": "src/core/ngx_cycle.c",
      "new_id": "b358f3dbe8ffa72b5f9c4937695308ea563e52ac",
      "new_mode": 33188,
      "new_path": "src/core/ngx_cycle.c"
    },
    {
      "type": "modify",
      "old_id": "4610acb00cba775e390710e1d74b86f9207370bc",
      "old_mode": 33188,
      "old_path": "src/event/ngx_event.c",
      "new_id": "878372c0006a879267b1bf934a12c00ae95c7724",
      "new_mode": 33188,
      "new_path": "src/event/ngx_event.c"
    },
    {
      "type": "modify",
      "old_id": "3f1c0b1643f290f8b56105df23d84051bfc66087",
      "old_mode": 33188,
      "old_path": "src/event/ngx_event_accept.c",
      "new_id": "8888f5accb2a73cd99ab433e26d36768e10b46bc",
      "new_mode": 33188,
      "new_path": "src/event/ngx_event_accept.c"
    },
    {
      "type": "modify",
      "old_id": "adb4b6f368cc7343424211f3631e112d8f0eb42d",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http.c",
      "new_id": "4642559ea3f22d6f898ee522288be122193360c1",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http.c"
    },
    {
      "type": "modify",
      "old_id": "1f034253dbdb70f1f2e162104eac55eade2a2e8e",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_core_module.c",
      "new_id": "f5255265e3f5f75241a74794b5f67cc6168be7eb",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_core_module.c"
    },
    {
      "type": "modify",
      "old_id": "e0ca2ce47f9dd64be26c24092fcf5ae8163bfac4",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_core_module.h",
      "new_id": "e6be5ac997c5374a3d0474921876c66fefe35efe",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_core_module.h"
    },
    {
      "type": "modify",
      "old_id": "18aea28af81228514a96ed9dbad78cbf8ac40907",
      "old_mode": 33188,
      "old_path": "src/stream/ngx_stream.c",
      "new_id": "1c5e7a87c2a4bfb2d549449f21b3618b085296e2",
      "new_mode": 33188,
      "new_path": "src/stream/ngx_stream.c"
    },
    {
      "type": "modify",
      "old_id": "83a43a41fe319cd77bba9600f9158f4deb4654e4",
      "old_mode": 33188,
      "old_path": "src/stream/ngx_stream.h",
      "new_id": "a10f68fffd1bd533fced2b3dd9695b0faae6370d",
      "new_mode": 33188,
      "new_path": "src/stream/ngx_stream.h"
    },
    {
      "type": "modify",
      "old_id": "c0df412a575e701ee66166fa61a5b0741ac3d6b2",
      "old_mode": 33188,
      "old_path": "src/stream/ngx_stream_core_module.c",
      "new_id": "c8d8e66bcd5b87ebb2325922c1689b0dbb2327f4",
      "new_mode": 33188,
      "new_path": "src/stream/ngx_stream_core_module.c"
    }
  ]
}
