{"push_id":589805872,"size":50,"distinct_size":50,"ref":"refs/heads/master","head":"75278c6326af4e6a81b8761acb5e24f6442dfa8f","before":"7d2497f0e57fb14b6ea43a5a2d180604d7e1e7e5","commits":[{"sha":"3f653ebe55bdce6745e99a3df91489a6fcaea5a0","author":{"email":"acc8fc51de3428feca4651aeb2ec44ef1dcb8720@fb.com","name":"Hannes Roth"},"message":"(Wangle) Catch all exceptions in `then() -> Future`\n\nSummary: Saw this while debugging some stuff. Just an oversight, right?\n\nTest Plan: Ran all the tests.\n\nReviewed By: hans@fb.com\n\nSubscribers: folly-diffs@, jsedgwick, yfeldblum\n\nFB internal diff: D1843016\n\nSignature: t1:1843016:1423704557:d9fdb4b879ab4fcfda54a5fcb16a639df15872b5","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/3f653ebe55bdce6745e99a3df91489a6fcaea5a0"},{"sha":"c2c47da2bc90ddc852cc102aaad562cb15229479","author":{"email":"326ed324dd4422d207643d5a7419ea85379f1b4e@fb.com","name":"Giuseppe Ottaviano"},"message":"Elias-Fano micro-optimizations\n\nSummary:\nShort skips have been optimized by adding special cases that use simple iteration when it is convenient. Large skips have been optimized by using the broadword selection algorithm by Vigna (improved with ideas by Gog&Petri) instead of iterating on the zeros/ones of the upper bits.\n\nThe benchmarks had to be made more granular to measure the differences, in particular they used to test skipping with a fixed skip length for each test, while now we average over a range of skips to better simulate a random distribution.\n\nThe improvements are very significant for `skipTo()` on short skips, about 2-3x for skips at distance 1 or 2, which can occur when intersecting dense lists. On large skips the gain is about 17%.\n\n`skip()` exhibits slightly smaller improvements.\n\nbefore               after\n============================================================================  ==================\nfolly/experimental/test/EliasFanoCodingTest.cpp relative  time/iter  iters/s  time/iter  iters/s\n============================================================================  ==================\nNext                                                         2.52ns  396.26M     2.52ns  397.28M\nSkip_ForwardQ128(1)                                          8.66ns  115.52M     3.92ns  255.28M\nSkip_ForwardQ128(2)                                          8.37ns  119.42M     5.08ns  197.04M\nSkip_ForwardQ128(4_pm_1)                                     9.67ns  103.41M     7.04ns  142.02M\nSkip_ForwardQ128(16_pm_4)                                   21.44ns   46.65M    19.68ns   50.82M\nSkip_ForwardQ128(64_pm_16)                                  30.86ns   32.40M    27.58ns   36.26M\nSkip_ForwardQ128(256_pm_64)                                 37.80ns   26.45M    32.49ns   30.78M\nSkip_ForwardQ128(1024_pm_256)                               38.99ns   25.65M    33.39ns   29.95M\nJump_ForwardQ128                                            37.91ns   26.37M    34.05ns   29.37M\n----------------------------------------------------------------------------  ------------------\nSkipTo_SkipQ128(1)                                          13.87ns   72.10M     4.42ns  226.49M\nSkipTo_SkipQ128(2)                                          18.80ns   53.20M     8.58ns  116.55M\nSkipTo_SkipQ128(4_pm_1)                                     23.59ns   42.38M    11.43ns   87.50M\nSkipTo_SkipQ128(16_pm_4)                                    36.04ns   27.74M    31.19ns   32.06M\nSkipTo_SkipQ128(64_pm_16)                                   53.34ns   18.75M    43.88ns   22.79M\nSkipTo_SkipQ128(256_pm_64)                                  62.27ns   16.06M    49.08ns   20.37M\nSkipTo_SkipQ128(1024_pm_256)                                65.63ns   15.24M    52.24ns   19.14M\nJumpTo_SkipQ128                                             65.89ns   15.18M    54.61ns   18.31M\n----------------------------------------------------------------------------  ------------------\nEncode_10                                                  111.94ns    8.93M   117.24ns    8.53M\nEncode                                                       5.35ms   187.02     5.64ms   177.15\n----------------------------------------------------------------------------  ------------------\nSelect64                                                     8.07ns  123.96M     8.04ns  124.35M\n============================================================================  ==================\n\nTest Plan:\nfbconfig folly/experimental/test:eliasfano_test && fbmake runtests_opt\n\nReviewed By: philipp@fb.com\n\nSubscribers: yfeldblum, fbcode-common-diffs@, chaoyc, search-fbcode-diffs@, unicorn-diffs@, trunkagent, folly-diffs@\n\nFB internal diff: D1793554\n\nSignature: t1:1793554:1423619344:1b078c0789639f317342ebcc77b11fe91859cd7b","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/c2c47da2bc90ddc852cc102aaad562cb15229479"},{"sha":"c3ca39e2cdd69292f281c9ef09a8b225f72cfc87","author":{"email":"43c5050ee298fdde5451b74cf4c2d495c87514a4@fb.com","name":"Keith Adams"},"message":"std::atomicize MicroSpinLock.\n\nSummary:\nA colleague at another company started making fun of\nMicroSpinLock for its x86 assembly and ad hoc compiler memory\nbarriers. Use C++11 (which wasn't really a thing at the time I wrote\nthis).\n\nTest Plan: folly's runtests. What else would we like?\n\nReviewed By: andrei.alexandrescu@fb.com\n\nSubscribers: folly-diffs@, yfeldblum\n\nFB internal diff: D1841563\n\nSignature: t1:1841563:1423780458:a447c081fbd72e3420b23e95dcf26575c9a06798","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/c3ca39e2cdd69292f281c9ef09a8b225f72cfc87"},{"sha":"c7c65f54afa6e0927c1a9a5ee818a79de337151a","author":{"email":"326ed324dd4422d207643d5a7419ea85379f1b4e@fb.com","name":"Giuseppe Ottaviano"},"message":"Fix EliasFanoReader position() when past-the-end\n\nSummary:\n`EliasFanoReader::position()` used to return `size() - 1` both when\nthe reader is positioned on the last element, and after `next()` is\ncalled after that (and it return `false`). Now in the latter case\n`position()` returns `size()` (consistently with the usual behaviour\nof past-the-end iterators).\n\nAlso fix the return type of `jumpTo`.\n\nTest Plan:\nfbconfig folly/experimental/test:eliasfano_test && fbmake runtests_opt\n\nReviewed By: philipp@fb.com\n\nSubscribers: trunkagent, folly-diffs@, yfeldblum\n\nFB internal diff: D1846275\n\nSignature: t1:1846275:1423790264:151f5d2e1e09d4e24dfb758473dfb9cd52c070bd","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/c7c65f54afa6e0927c1a9a5ee818a79de337151a"},{"sha":"96242018c6e9355fb083983c2118ff27ea182eba","author":{"email":"e2b78b2ae98d5304f4676b7cd3c5892a0e3e7c9f@fb.com","name":"Jonathan Frank"},"message":"Be able to access proxy client IP (including Lua)\n\nSummary:\nPass TransportInfo object through connection setup.  This allows us to\npass along additional info from the setup if necessary.\n\nTest Plan:\nRun proxygen on my devserver listening on ipv4 and ipv6 for ports 80 and 443.\nConfigure it to run a lua request rule with the following lines:\n\nio.stderr:write(\"jonlog: proxy \" .. conn:getClientAddrOriginal() .. \"\\n\")\nio.stderr:write(\"jonlog: client \" .. request:getClientIPStr() .. \"\\n\")\n\nRun haproxy also on my devserver, listening on ports 8555-8558, with each\nforwarding to one of the four pairs (ipv4-localhost/ipv6-localhost, 80/443)\n\nFrom my laptop, run curls against each of these four endpoints and make\nsure that we print out \"127.0.0.1\" as the proxy IP, and my laptop's IP\nas the client IP.\n\nReviewed By: cgheorghe@fb.com\n\nSubscribers: jsedgwick, yfeldblum, trunkagent, ruibalp, bmatheny, folly-diffs@, dsp, nbm\n\nFB internal diff: D1746590\n\nTasks: 5688127\n\nSignature: t1:1746590:1423695880:f647964d95636a69a00304e144aef71ee0213d28","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/96242018c6e9355fb083983c2118ff27ea182eba"},{"sha":"09430395fd7dea427c75af131b08bba8c5136535","author":{"email":"acc8fc51de3428feca4651aeb2ec44ef1dcb8720@fb.com","name":"Hannes Roth"},"message":"(Wangle) Have Core own an FSM instead of inheriting\n\nSummary:\nThis seems cleaner. I also moved a Core member around and changed state to be a smaller size to save us 16 bytes. Might be neat to try to get this down to 128?\n\nFixed compilation with GCC 4.9, too.\n\nTest Plan: Ran all the tests. Will also benchmark.\n\nReviewed By: hans@fb.com\n\nSubscribers: trunkagent, folly-diffs@, jsedgwick, yfeldblum\n\nFB internal diff: D1843129\n\nSignature: t1:1843129:1423789502:60e56d1af553994991195fcc350d37d644a556ca","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/09430395fd7dea427c75af131b08bba8c5136535"},{"sha":"ccb229d557f1d137473bd256739b379ffdd139e8","author":{"email":"15b0b14300fba1cff8c70eb2a5c1720ef2a4c654@fb.com","name":"Jim Meyering"},"message":"folly: avoid new warnings from -Winconsistent-missing-override\n\nSummary:\nUpgrading to clang:dev (clang >3.6) brought in some new warnings.\nThis change address all of the issues exposed by the new\n-Winconsistent-missing-override, usually by simply adding the\nmissing \"override\" keyword.  However, in\nfolly/wangle/channel/test/MockChannelHandler.h, I chose\nto ignore those warnings for the mocked functions.\n* folly/futures/test/ViaTest.cpp: Add missing \"override\"(s).\n* folly/io/async/AsyncSSLSocket.h: Likewise.\n* folly/io/async/AsyncSocket.h: Likewise.\n* folly/io/async/EventBase.h: Likewise.\n* folly/test/ExceptionWrapperTest.cpp: Likewise.\n* folly/wangle/channel/AsyncSocketHandler.h: Likewise.\n* folly/wangle/channel/test/MockChannelHandler.h: Ignore\nthe new warning for these functions.\n\nTest Plan:\nRun these commands and note there are fewer errors than before:\nfbconfig --clang --with-project-version=clang:dev -r folly && fbmake dbgo\n\nReviewed By: hans@fb.com\n\nSubscribers: trunkagent, fugalh, folly-diffs@, jsedgwick, yfeldblum\n\nFB internal diff: D1848330\n\nTasks: 6244745\n\nSignature: t1:1848330:1423858909:b167ca220d6c9fe036d3adca08cf3053a7a9de16","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/ccb229d557f1d137473bd256739b379ffdd139e8"},{"sha":"0234d5d11585e5e1a3c76a7ea5e99c3d925a06ca","author":{"email":"15b0b14300fba1cff8c70eb2a5c1720ef2a4c654@fb.com","name":"Jim Meyering"},"message":"folly: move side effects out of EXPECT_EQ args\n\nSummary:\nThis avoids warnings about e.g., sizeof(k++) that result\nfrom macro expansion.\n* folly/futures/test/ExecutorTest.cpp: Move increment out\nof macro argument list.\n* folly/test/FBVectorTestBenchmarks.cpp.h: Likewise.\n* folly/test/LazyTest.cpp: Likewise.\nOtherwise, we'd get errors like this:\n\nfolly/test/LazyTest.cpp:49:118: error: expression with side effects has no effect in an unevaluated context [-Werror,-Wunevaluated-expression]\nswitch (0) case 0: default: if (const ::testing::AssertionResult gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing::internal::IsNullLiteralHelper(++globalCount())) == 1)>::Compare(\"++globalCount()\", \"1\", ++globalCount(), 1))) ; else ::testing::internal::AssertHelper(::testing::TestPartResult::kNonFatalFailure, \"folly/test/LazyTest.cpp\", 49, gtest_ar.failure_message()) = ::testing::Message();\n^\n\nTest Plan:\nRun these commands and note there are fewer errors than before:\nfbconfig --clang --with-project-version=clang:dev -r folly && fbmake dbgo\n\nReviewed By: njormrod@fb.com\n\nSubscribers: folly-diffs@, jsedgwick, yfeldblum\n\nFB internal diff: D1848324\n\nTasks: 6244745\n\nSignature: t1:1848324:1423860890:bce44c5e0895804a21957893ae6b78e76dfbc4d3","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/0234d5d11585e5e1a3c76a7ea5e99c3d925a06ca"},{"sha":"bb4612a0129615428e65400898cce618cd89eb1a","author":{"email":"46347070133008d8f23362a4811f7564e7e58a6e@fb.com","name":"Yedidya Feldblum"},"message":"clang:dev rejects vector<atomic<T>> in EventBaseTest.cpp.\n\nSummary: [Folly] clang:dev rejects vector<atomic<T>> in EventBaseTest.cpp.\n\nTest Plan: Build and run `folly/io/async/test/EventBaseTest.cpp` using the current `clang`; try building with `clang:dev` and verifying that at least the related failures are gone.\n\nReviewed By: meyering@fb.com\n\nSubscribers: mathieubaudet, folly-diffs@, yfeldblum, dougw, brettp\n\nFB internal diff: D1848749\n\nTasks: 6244720\n\nSignature: t1:1848749:1423866420:7b7354d4568b6a6d6a824236ae8d271f6855d90b","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/bb4612a0129615428e65400898cce618cd89eb1a"},{"sha":"a3259f635f9b2fb5a109672c0f16d4a497fa3b67","author":{"email":"15b0b14300fba1cff8c70eb2a5c1720ef2a4c654@fb.com","name":"Jim Meyering"},"message":"folly/ExceptionWrapper.h: avoid warning about typeid operand side effects\n\nSummary:\n* folly/ExceptionWrapper.h (class_name): Clang is not yet smart enough to\nsee that there is no harm in dereferencing an \"item_\" that we've just\nverified is non-NULL.  Accommodate it, to avoid this:\n./folly/ExceptionWrapper.h:199:30: error: expression with side effects will be evaluated despite being used as an operand to 'typeid' [-Werror,-Wpotentially-evaluated-expression]\nreturn demangle(typeid(*item_));\n^\n\nTest Plan:\nRun these commands and note there are fewer errors than before:\nfbconfig --clang --with-project-version=clang:dev -r folly && fbmake dbgo\n\nReviewed By: mhorowitz@fb.com\n\nSubscribers: trunkagent, yfeldblum, folly-diffs@\n\nFB internal diff: D1848327\n\nTasks: 6244745\n\nSignature: t1:1848327:1423869597:a58c9e9e3671befb78ae07fbd274a13d08ffb2a7\n\nBlame Revision:","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/a3259f635f9b2fb5a109672c0f16d4a497fa3b67"},{"sha":"cb2d6c84271625f02f00df178688113d2ea1e336","author":{"email":"15b0b14300fba1cff8c70eb2a5c1720ef2a4c654@fb.com","name":"Jim Meyering"},"message":"folly: OptionalTest.cpp: suppress a -Wself-move warning\n\nSummary:\nClang's new -Wself-move warning dings this code:\n\nb = std::move(b);\n\nBut in this case, that is a deliberate test of\nthis capability, so we suppress that particular\nwarning for the duration of this small test function.\n\nTest Plan:\nRun this and note that it now compiles: (it passes the tests, too)\nfbconfig --clang --with-project-version=clang:dev -r folly/test:optional_test && fbmake dbgo\n\nReviewed By: watashi@fb.com\n\nSubscribers: folly-diffs@, yfeldblum\n\nFB internal diff: D1849689\n\nTasks: 6244745\n\nSignature: t1:1849689:1423877932:4f479d682bd8ba97dcabed7fc29ce0a22c013969\n\n@build-break (using this to work around bogus push failure: https://phabricator.fb.com/P19730606)","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/cb2d6c84271625f02f00df178688113d2ea1e336"},{"sha":"2b4d1dea72dda8611716b987b60038fe34460a86","author":{"email":"15b0b14300fba1cff8c70eb2a5c1720ef2a4c654@fb.com","name":"Jim Meyering"},"message":"wangle: make new pragma use portable to older clang\n\nSummary:\n* folly/wangle/channel/test/MockChannelHandler.h:\nAvoiding a new warning that rendered this file uncompilable\nby clang-3.5 and older.  Add cpp conditionals to protect\nagainst that.\n\nTest Plan:\nEnsure it works with clang-3.4, 3.5 and clang:dev.\nI.e., ensure that this prints PASS at the end.\n\nfor i in '' 3.5 dev; do\ntest -n \"$i\" && i=--with-project-version=clang:$i\nfbconfig -r --clang $i folly/wangle/channel/test && fbmake runtests_dbgo\ndone && echo PASS\n\nReviewed By: meyering@fb.com\n\nSubscribers: mpawlowski, fugalh, mathieubaudet, folly-diffs@, jsedgwick, yfeldblum\n\nFB internal diff: D1849474\n\nTasks: 6244745\n\nBlame Revision: D1848330\n@build-break","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/2b4d1dea72dda8611716b987b60038fe34460a86"},{"sha":"82b788f506cb45e44921c42337efb93e4bfe3656","author":{"email":"15b0b14300fba1cff8c70eb2a5c1720ef2a4c654@fb.com","name":"Jim Meyering"},"message":"ExceptionWrapperTest.cpp vs clang's new warning about side effects in typeid argument list\n\nSummary:\nDisable the -Wunevaluated-expression warning for this test:\n\nEXPECT_EQ(typeid(ie), typeid(IntException));\n\nOtherwise, clang warns about the unevaluated expression because\nthe expansion of EXPECT_EQ applies sizeof to an expression\nwith side effects:\n\nfolly/test/ExceptionWrapperTest.cpp:179:122: error: expression with side effects has no effect in an unevaluated context [-Werror,-Wunevaluated-expression]\nswitch (0) case 0: default: if (const ::testing::AssertionResult gtest_ar = (::testing::internal:: EqHelper<(sizeof(::testing::internal::IsNullLiteralHelper(typeid(ie))) == 1)>::Compare(\"typeid(ie)\", \"typeid(IntException)\", typeid(ie), typeid(IntException)))) ; else ::testing::internal::AssertHelper(::testing::TestPartResult::kNonFatalFailure, \"folly/test/ExceptionWrapperTest.cpp\", 179, gtest_ar.failure_message()) = ::testing::Message();\n\nTest Plan:\nEnsure this compiles with clang-3.4, 3.5 and clang:dev.\nI.e., ensure that this prints PASS at the end.\n\nfor i in '' 3.5 dev; do\ntest -n \"$i\" && i=--with-project-version=clang:$i\nfbconfig -r --clang $i folly/test:exception_wrapper_test && fbmake dbgo\ndone && echo PASS\n\nReviewed By: mpawlowski@fb.com\n\nSubscribers: mathieubaudet, folly-diffs@, yfeldblum\n\nFB internal diff: D1850778\n\nTasks: 6244745\n\nSignature: t1:1850778:1424111029:136478e9a3cc3a219047547d501de4c579a1a181","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/82b788f506cb45e44921c42337efb93e4bfe3656"},{"sha":"f30a65d286f9668ca3f3cc69200cab519f083a38","author":{"email":"acc8fc51de3428feca4651aeb2ec44ef1dcb8720@fb.com","name":"Hannes Roth"},"message":"(Wangle) Shrink Core to 128 bytes\n\nSummary: I think this makes sense, especially if `interrupt_` is really rare.\n\nTest Plan:\n============================================================================\nfolly/futures/test/Benchmark.cpp                relative  time/iter  iters/s\n============================================================================\nconstantFuture                                             101.25ns    9.88M\npromiseAndFuture                                  92.86%   109.03ns    9.17M\nwithThen                                          28.96%   349.65ns    2.86M\n----------------------------------------------------------------------------\noneThen                                                    337.33ns    2.96M\ntwoThens                                          58.46%   577.06ns    1.73M\nfourThens                                         32.42%     1.04us  961.23K\nhundredThens                                       1.45%    23.24us   43.04K\n----------------------------------------------------------------------------\nno_contention                                                4.45ms   224.48\ncontention                                        72.89%     6.11ms   163.61\n----------------------------------------------------------------------------\nthrowAndCatch                                                6.34us  157.77K\nthrowAndCatchWrapped                              95.65%     6.63us  150.91K\nthrowWrappedAndCatch                             142.58%     4.45us  224.95K\nthrowWrappedAndCatchWrapped                      488.86%     1.30us  771.27K\n----------------------------------------------------------------------------\nthrowAndCatchContended                                        1.01s  987.01m\nthrowAndCatchWrappedContended                    100.03%      1.01s  987.27m\nthrowWrappedAndCatchContended                    148.37%   682.86ms     1.46\nthrowWrappedAndCatchWrappedContended            18765.19%     5.40ms   185.21\n============================================================================\n\nCompare to D1843129#31 (seems to be an improvement?)\n\nReviewed By: hans@fb.com\n\nSubscribers: trunkagent, folly-diffs@, jsedgwick, yfeldblum\n\nFB internal diff: D1847843\n\nSignature: t1:1847843:1423855151:3602d49df245eda3f85325ab5efd63514213ca44","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/f30a65d286f9668ca3f3cc69200cab519f083a38"},{"sha":"753e1e5a28120608b4be24003039e85b8f58bebd","author":{"email":"f7a3a5c0528e7657f3f7816faa0a5e2de16317f6@fb.com","name":"Sara Golemon"},"message":"Reformat comment for readability, 80-col rule, and gcc cleanliness\n\nSummary:\nThe continuation at the end of the line with the while\nwas causing gcc to complain about it because it's a\nsingle line comment.\n\nReformat it into a multiline comment and wrap it to 80 chars.\n\nTest Plan: It's just a comment...\n\nReviewed By: paulbiss@fb.com\n\nSubscribers: trunkagent, folly-diffs@, yfeldblum\n\nFB internal diff: D1850876\n\nSignature: t1:1850876:1424124973:b2afbc2a8177ac6d11a21bf5a52093bcfd9cbb3e","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/753e1e5a28120608b4be24003039e85b8f58bebd"},{"sha":"b35c3434677866f744d679f09a8429f86aba12a2","author":{"email":"fc3cbeecb7a6af1ffaf6af6fde52ce77256978fa@fb.com","name":"Andrei Alexandrescu"},"message":"Migrate FunctionScheduler from common/concurrency/ to folly/experimental/\n\nSummary: This are the open-source-related additions. A separate diff will replace the current implementation in common/concurrency/ to use this one.\n\nTest Plan: fbmake runtests\n\nReviewed By: simpkins@fb.com\n\nSubscribers: trunkagent, net-systems@, folly-diffs@, yfeldblum\n\nFB internal diff: D1845525\n\nSignature: t1:1845525:1424207291:d30e3c5e85222527c2aff39c1250aa1e41b9a2cf","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/b35c3434677866f744d679f09a8429f86aba12a2"},{"sha":"5d1db31bc0a281d695a1366b3193566c3476968c","author":{"email":"450886ab958931a1b640c5db7e55f3b50c4bb462@fb.com","name":"Andrii Grynenko"},"message":"Kill get_fast/get_weak_fast Singletonn API\n\nSummary: After D1827390 regular get and get_weak is comparable to Meyers and static singletons, so there's no need to keey _fast APIs.\n\nTest Plan: benchmark && fbmake\n\nReviewed By: mshneer@fb.com\n\nSubscribers: trunkagent, configerator-diffs@, fbcode-common-diffs@, mcduff, hitesh, mshneer, fugalh, acampi, alikhtarov, folly-diffs@, jsedgwick, yfeldblum\n\nFB internal diff: D1843219\n\nSignature: t1:1843219:1424216566:f2f182a1c86bb5f0fb1f978d8c6b7a4388198f5f","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/5d1db31bc0a281d695a1366b3193566c3476968c"},{"sha":"8f54229a1eed38d3038d580d3e504b5f092a55b3","author":{"email":"aa81cd2030f21b5bf11d7ed340f43a6115973161@fb.com","name":"Dave Watson"},"message":"Use folly's async udp socket\n\nSummary: They are functionaly equivalent, no need to have more than one\n\nTest Plan: fbconfig -r realtime/voip; fbmake runtests\n\nReviewed By: naizhi@fb.com\n\nSubscribers: trunkagent, doug, ps, bmatheny, folly-diffs@, yfeldblum\n\nFB internal diff: D1828044\n\nTasks: 6154007\n\nSignature: t1:1828044:1423165354:f71d2fd28ca76a8f67a597c747f8578d2909823c","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/8f54229a1eed38d3038d580d3e504b5f092a55b3"},{"sha":"42f4cd7c92f086c89440f6adf47c5bef34e080bb","author":{"email":"aa81cd2030f21b5bf11d7ed340f43a6115973161@fb.com","name":"Dave Watson"},"message":"some moar unittests\n\nSummary: from discussion\n\nTest Plan: unit tests\n\nReviewed By: hans@fb.com\n\nSubscribers: doug, folly-diffs@, jsedgwick, yfeldblum\n\nFB internal diff: D1829282\n\nSignature: t1:1829282:1423180907:3630dac1378750b05f316c672fbbd71138d2bc0a","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/42f4cd7c92f086c89440f6adf47c5bef34e080bb"},{"sha":"59e4f0d059f214f8aa185517551fdb99511fece0","author":{"email":"aa81cd2030f21b5bf11d7ed340f43a6115973161@fb.com","name":"Dave Watson"},"message":"use ServerBootstrap\n\nSummary:\nUse server bootstrap.\n\n* code reuse\n* Allows multiple accept threads easily.\n\nAccept now doesn't happen in the server's eventBase, but a new thread.\n\nI think I hit all the corner cases involving existingSocket, duplex, stopListening(), etc.\n\nThere are a lot of minor changes here to support all the cases, let me know if I should split anything to separate diffs\n\nTest Plan: fbconfig -r thrift/lib/cpp2; fbmake runtests\n\nReviewed By: hans@fb.com\n\nSubscribers: haijunz, yfeldblum, ruibalp, fbcode-common-diffs@, davejwatson, jsedgwick, trunkagent, doug, alandau, bmatheny, mshneer, folly-diffs@, mcduff, andrewcox, fugalh\n\nFB internal diff: D1732895\n\nTasks: 5788102\n\nSignature: t1:1732895:1423087631:379bbb131c35ce2221801bc7cec226f87ba0b1d9","distinct":true,"url":"https://api.github.com/repos/facebook/folly/commits/59e4f0d059f214f8aa185517551fdb99511fece0"}]}