- 10 Apr, 2015 12 commits
-
-
Dave Watson authored
Summary: Is there any reason we shouldn't just cache the chain length everywhere? Currently the pipeline does a lot of passing of buffers between IOBufQueues, I wonder if we can get even smarter about passing the length around Test Plan: used in telnet server diff Reviewed By: hans@fb.com Subscribers: doug, fugalh, folly-diffs@, jsedgwick, yfeldblum, chalfant FB internal diff: D1959167 Signature: t1:1959167:1427934568:eb9a49514b2bb7d157879bb8efa99f12092d5e95
-
Andrii Grynenko authored
Summary: LoopController and Fibers keep references to FiberManager, so implementing move-constructor for it is non-trivial. The only purpose of move constructor was to have a create() static method, replaced it with a constructor accepting a type tag. Test Plan: unit test + tao build Reviewed By: stepan@fb.com, pavlo@fb.com Subscribers: folly-diffs@, yfeldblum, chalfant FB internal diff: D1971881 Signature: t1:1971881:1428374073:945d913e69eaa6f957dace981c23835105d91935
-
Dave Watson authored
Summary: AsyncUDPServerSocket doesn't make it easy to write to the same socket you read from. Add the socket as a callback param, similar to AsyncServerSocket Test Plan: fbconfig -r folly; fbmake dbg Will fixup any other spots contbuild finds Reviewed By: hans@fb.com Subscribers: bmatheny, doug, fugalh, folly-diffs@, jsedgwick, yfeldblum, chalfant FB internal diff: D1948936 Signature: t1:1948936:1427841651:20d13d73c06d31c75056624f051a6fd35b9701fb
-
Brian Watling authored
Summary: This diff allows fibers to explicitly yield execution to other fibers and the event loop Test Plan: unit tests Reviewed By: andrii@fb.com Subscribers: folly-diffs@, yfeldblum, chalfant, tao-eng@ FB internal diff: D1965297 Signature: t1:1965297:1428082686:e524e9dd21b3fb951e1d3556e4cb3eedc3e6511a
-
Andrii Grynenko authored
Test Plan: contbuild Reviewed By: pavlo@fb.com Subscribers: alikhtarov, folly-diffs@, yfeldblum, chalfant FB internal diff: D1966698 Signature: t1:1966698:1428367351:62f2218c23d4911c15055917c0fbae31a2420903
-
Hans Fugal authored
Summary: We were forward-declaring `Executor` and `IOExecutor` for great compilation speed. However, this leaves users of this header to include at least one of those headers in their cpp file to actually use it, and that's kind of annoying. `Executor` and `IOExecutor` are not templated and are quite small, so it seems like the compilation speed benefit is minimal compared to the convenience factor, so this diff just includes the two headers. (Probably including `Executor.h` is redundant since `IOExecutor.h` probably includes it, but for completeness and explicitness, and in case `IOExecutor` also just forward-declares `Executor` now or in the future.) Test Plan: stuff still builds Reviewed By: davejwatson@fb.com Subscribers: fugalh, exa, folly-diffs@, jsedgwick, yfeldblum, chalfant FB internal diff: D1970179 Signature: t1:1970179:1428351076:e9c3700a868688035e7ff50486b8cead751d3c02
-
Andrii Grynenko authored
Summary: This adds local type for each FiberManager. Only local of given type can be created on fibers of this FiberManager. Locals of other types will be just treated as regualar thread-locals. Test Plan: unit test Reviewed By: bwatling@fb.com Subscribers: folly-diffs@, yfeldblum, chalfant FB internal diff: D1969739 Signature: t1:1969739:1428345931:aff5deb526c179158e5881b29330ff3f6698149a
-
Pavlo Kushnir authored
Summary: title + some logging around Test Plan: mcrouter unit tests Reviewed By: andrii@fb.com Subscribers: alikhtarov, folly-diffs@, yfeldblum, chalfant FB internal diff: D1965097 Signature: t1:1965097:1428103637:341ff705c9d11c730197828256ec0b790ee7afaa
-
Dave Watson authored
Summary: promote the sockets vector to a shared_ptr, since both ServerWorkerPool and ServerBootstrap use it. Otherwise there are destruction order issues between ServerBootstrap and any IOThreadPoolExecutor you use Test Plan: Saw use after free in D1942242, gone after this. Reviewed By: yfeldblum@fb.com Subscribers: chalfant, doug, fugalh, folly-diffs@, jsedgwick, yfeldblum FB internal diff: D1947553 Signature: t1:1947553:1427484417:5b78f5c9c70d244d3f52a6f71b6d1fab7b29d106
-
Andrii Grynenko authored
Summary: This simplifies TAO fibers locals, using FiberManager based fiber-local storage. This depends on D1958135. Test Plan: integration tests Reviewed By: bwatling@fb.com Subscribers: alikhtarov FB internal diff: D1962214 Signature: t1:1962214:1427997755:b546b9039382a7600f234b0a2a60cc96da34e662
-
Andrii Grynenko authored
Summary: This adds fiber-local context, which behaves more like static objects+fork rather than thread-locals. Test Plan: unit test Reviewed By: pavlo@fb.com, bwatling@fb.com Subscribers: rushix, alikhtarov, bwatling FB internal diff: D1958135 Signature: t1:1958135:1427999426:8e4b89f4af53a1a119b2e5a765fb549dd8442c50
-
Joel Goguen authored
Summary: Some things like gSOAP, initialize SSL only to have SSLContext stomp over their work. Add a method to allow flagging SSLContext as "initialized" to use the existing global state. Test Plan: Tested running mcrouter and paymentnegined to verify existing functionality appears normal. Reviewed By: subodh@fb.com Subscribers: ssl-diffs@, folly-diffs@, yfeldblum, chalfant, dihde FB internal diff: D1959936 Tasks: 6655251 Signature: t1:1959936:1427994292:8b2be1742ef17a5ec2c7b3ad37787d2cf4d142a6
-
- 02 Apr, 2015 28 commits
-
-
afrind authored
-
Alan Frindell authored
Summary: facepalm Test Plan: Built proxygen OSS that depends on this symbol Reviewed By: davejwatson@fb.com Subscribers: doug, folly-diffs@, yfeldblum, chalfant FB internal diff: D1963679 Signature: t1:1963679:1428006035:2c4ceffc046b995431cde2fbcef757fa7ea1ea0b
-
Rushi Desai authored
Summary: The mcrouter fibers library is quite general purpose and reusable by other projects. Hence I'm moving it into folly. Test Plan: fbconfig -r folly/experimental/fibers && fbmake runtests fbconfig -r mcrouter && fbmake runtests fbconfig -r tao && fbmake fbconfig -r ti && fbmake Reviewed By: andrii@fb.com Subscribers: vikas, zhuohuang, jmkaldor, jhunt, pavlo, int, aap, trunkagent, fredemmott, alikhtarov, folly-diffs@, jsedgwick, yfeldblum, chalfant, chip FB internal diff: D1958061 Signature: t1:1958061:1428005194:b57bfecfe9678e81c48526f57e6197270e2b5a27
-
afrind authored
-
Dave Watson authored
Summary: Bind via port or address, similar to tcp Test Plan: I wrote a unittest that tested v4 vs v6 binding - can't check it in because we have v6 only clusters though. Not sure how eles to write a unittest without picking specific ports Reviewed By: hans@fb.com Subscribers: doug, fugalh, folly-diffs@, jsedgwick, yfeldblum, chalfant FB internal diff: D1948938 Signature: t1:1948938:1427841721:621031320981bf366a8252a0ea1d4491b694ea24
-
Alan Frindell authored
Summary: TODO item, trying to remove unecessary dependencies on thrift Test Plan: Unit tests Reviewed By: davejwatson@fb.com Subscribers: doug, fbcode-common-diffs@, davejwatson, andrewcox, alandau, bmatheny, anca, darshan, mshneer, folly-diffs@, bil, yfeldblum, haijunz, chalfant FB internal diff: D1960215 Signature: t1:1960215:1427920934:8abd7e94c50676b05bf7ff79800df0db1bd04266
-
Alan Frindell authored
Summary: These parallel the MockTAsync* from thrift/lib/cpp/test. Once all the users of the thrift versions are gone they can be deleted Test Plan: Unit tests Reviewed By: yfeldblum@fb.com, alandau@fb.com Subscribers: doug, net-systems@, folly-diffs@, yfeldblum, chalfant FB internal diff: D1959979 Signature: t1:1959979:1427917909:19af219f88dd6847a064da986dd30765e29bdc99
-
Alan Frindell authored
Summary: These tests belong with the code that they test. The old tests had a couple dependencies on TSocket/TSSLSocket, so I wrote a BlockingSocket wrapper for AsyncSocket/AsyncSSLSocket Test Plan: Ran the tests Reviewed By: alandau@fb.com Subscribers: doug, net-systems@, alandau, bmatheny, mshneer, folly-diffs@, yfeldblum, chalfant FB internal diff: D1959955 Signature: t1:1959955:1427917833:73d334846cf248f8bb215f3eb5b596df7f7cee4f
-
Rushi Desai authored
Summary: Adding new atomic data structure from the mcrouter project. Test Plan: fbconfig -r mcrouter && fbmake runtests Reviewed By: andrii@fb.com Subscribers: alikhtarov, folly-diffs@, yfeldblum, chalfant, achao, jpearce FB internal diff: D1960219 Signature: t1:1960219:1427921204:78e5313ea916b8a249d32e31cc7ba1aa9e890d95
-
Hannes Roth authored
Summary: See the test case and D1958860. I don't really know why I chose one over the other. This fixes a bug. So it's better? Test Plan: Run all the tests? Reviewed By: yfeldblum@fb.com Subscribers: folly-diffs@, jsedgwick, yfeldblum, chalfant, over FB internal diff: D1960740 Signature: t1:1960740:1427927644:25093b049a1519d7c869ee7043f3caced4cc971e
-
Naizhi Li authored
Summary: I have 2 local buffers and instead of allocating iobufs on the heap, I can simply use iovec on the stack to send. Test Plan: Unit tests and turn server. Reviewed By: davejwatson@fb.com Subscribers: folly-diffs@, ehrhardt, yfeldblum, chalfant, paramr FB internal diff: D1956201 Signature: t1:1956201:1427918649:09f00399fd9e8ed3fe62be43b19adbf0a5a3f3b0
-
Tom Jackson authored
Test Plan: unittests Reviewed By: jbrewer@fb.com, ashishsharma@fb.com Subscribers: maxime, folly-diffs@, yfeldblum, chalfant FB internal diff: D1956101 Signature: t1:1956101:1427828321:2d828e6f2c06c6dcd6e7baa3ed5e72ee59d9b77f
-
Mark McDuff authored
Summary: From reading the docs, I assumed that casting exceptions would be caught. Let's clarify this. Test Plan: readingiskey Reviewed By: yfeldblum@fb.com Subscribers: folly-diffs@, yfeldblum, chalfant FB internal diff: D1960186 Signature: t1:1960186:1427920471:b7aa2af38a90a986418b98294fc0f69e678f0d1e
-
Hannes Roth authored
Summary: Taking this trick that is used in the fibers library. We can keep 64 bytes of space inside `Core` to allocate the callback lambda into, instead of having `std::function` do another `malloc`. This seems to greatly improve the synthethic benchmark, and hopefully production workloads, too, by reducing the number of mallocs. 64 bytes were picked because it fits all the lambdas in the futures tests. We might want to adjust this based on production data...? https://fb.intern.facebook.com/groups/715931878455430/permalink/837898842925399/ Test Plan: Run all the tests for all platforms, compilers, and Windtunnel. Reviewed By: hans@fb.com Subscribers: chalfant, meisner, folly-diffs@, jsedgwick, yfeldblum FB internal diff: D1931620 Signature: t1:1931620:1427841595:6ec667b58980be232dfb116bc316148bb67de4fc
-
Dave Watson authored
Summary: In a couple places in ServerBootstrap there is code that needs to run in the EB, but if we are already in the EB, it's fine to run it inline. Maybe this should be a method on EB directly? There is runInEventBaseThreadAndWait(), but it explicitly disallows this usage. Test Plan: used in D1942242, deadlocks without this, since stop() was called in the same eb Reviewed By: yfeldblum@fb.com Subscribers: chalfant, doug, fugalh, folly-diffs@, jsedgwick, yfeldblum FB internal diff: D1947581 Signature: t1:1947581:1427831021:d1d08ff9a4a00501d6be60670709fcb17af04134
-
Joel Goguen authored
Summary: The current behaviour of SSLContext is subject to a bug where an instance going out of scope at the wrong time can decrement the global refcount to 0, causing the destructor to destroy the SSL context. Instead, this requires callers to explicitly uninitialize the SSLContext instance and assume the risk of wrongly destroying the global SSL context. Test Plan: Tested with mcrouter Reviewed By: subodh@fb.com Subscribers: afrind, ssl-diffs@, folly-diffs@, yfeldblum, chalfant, dihde, melitam FB internal diff: D1949649 Tasks: 6358211 Signature: t1:1949649:1427854689:aea2dc801f63256ff64188b0f7a15121dcecee69
-
Yuri Putivsky authored
Summary: as title Test Plan: run unit tests Reviewed By: yfeldblum@fb.com Subscribers: ming, fugalh, folly-diffs@, jsedgwick, yfeldblum, chalfant FB internal diff: D1955074
-
Daniel Pittman authored
Summary: If an MPMCQueue was initialized with an explicit zero capacity, it would try to compute stride for zero and trigger SIGFPE which pretty fatally killed the process -- but in a way that required gdb to figure out the root cause. This replaces that with a std::invalid_argument exception, which includes a description of the problem and should make fixing this user error much faster. Test Plan: GTEST unit test added to verify behaviour; if this didn't work it would SIGFPE and abort the test script, which is probably a good indicator that something went wrong. :) fbconfig -r folly && fbmake runtests Reviewed By: ngbronson@fb.com Subscribers: chalfant, folly-diffs@, yfeldblum, rkomorn FB internal diff: D1930978 Signature: t1:1930978:1427740315:cc06a8b9f3c314b956ae41f813b2f904d3e979c9
-
Dave Watson authored
Summary: Since Acceptor can be used for TCP or UDP, make an empty default TCP accept function so subclasses don't have to. Test Plan: built D1942242, no build errors contbuild Reviewed By: yfeldblum@fb.com Subscribers: doug, fugalh, folly-diffs@, jsedgwick, yfeldblum, chalfant FB internal diff: D1948940 Signature: t1:1948940:1427498977:26b7bb23e3367ff6695dad86ebf0e60637815a7b
-
Yedidya Feldblum authored
Summary: [Folly] EventBase::runImediatelyOrRunInEventBaseThreadAndWait. When you have code that you need to run in the event loop and wait for it to finish, and you yourself might be in the event loop but might be in another thread instead. Test Plan: Unit tests: * `folly/io/async/test/EventBaseTest.cpp`. Reviewed By: davejwatson@fb.com Subscribers: folly-diffs@, yfeldblum, chalfant, agallagher, njormrod, ldbrandy, brettp, dougw FB internal diff: D1953110 Signature: t1:1953110:1427751076:ad2c9f4d5b65ef952cba94b06be887672ee44583
-
Yuri Putivsky authored
Summary: as title. Test Plan: run unit tests Reviewed By: yfeldblum@fb.com Subscribers: ming, fugalh, folly-diffs@, jsedgwick, yfeldblum, ridge@ FB internal diff: D1946589
-
Yuri Putivsky authored
Summary: as title Test Plan: run unit tests Reviewed By: yfeldblum@fb.com Subscribers: ming, fugalh, folly-diffs@, jsedgwick, yfeldblum, chalfant FB internal diff: D1950610
-
Dave Watson authored
Summary: AsyncUDPSocket supports reuse port, also make it available in AsyncUDPServerSocket. Has to happen before bind Test Plan: ?? it builds? Mutliple binds already work with reuseaddr, but load balancing doesn't work as well. See http://lwn.net/Articles/542629/ for details Reviewed By: naizhi@fb.com Subscribers: doug, fugalh, folly-diffs@, jsedgwick, yfeldblum, chalfant FB internal diff: D1948932 Signature: t1:1948932:1427473013:8c114458a0746bb2b6957db33c1834179d860c00
-
Hans Fugal authored
Test Plan: new unit tests Reviewed By: davejwatson@fb.com Subscribers: chalfant, bmatheny, trunkagent, exa, folly-diffs@, yfeldblum, jsedgwick FB internal diff: D1828251 Tasks: 6166893 Signature: t1:1828251:1427475565:512463d5728482a40c1da2548a5bed91e7f92d60
-
Alexey Spiridonov authored
Summary: Without a gadget like this, it's really hard to test logging output. With it, it's really easy. I found about 50 callsites to the various functions across several projects, so folly seems appropriate. PS The patterns are functions for two reasons: - Static variables are a pain. - This leaves the option of adding an optional argument, so you can grep for a particular kind of error string. Test Plan: unit test Reviewed By: yfeldblum@fb.com Subscribers: folly-diffs@, yfeldblum FB internal diff: D1933439 Signature: t1:1933439:1427345479:5b3d1c6566a026fdbccb16b382211688e327ea1a
-
Alexey Spiridonov authored
Summary: There are about 40 callsites to these across a couple of projects, and they seem generally useful. Test Plan: ```fbconfig folly/experimental/test && fbmake runtests``` Reviewed By: yfeldblum@fb.com Subscribers: folly-diffs@, yfeldblum FB internal diff: D1933415 Signature: t1:1933415:1427345307:6587eea3dac74c5d841950ace3c3501d6e3dbe4a
-
Adam Simpkins authored
Summary: TemporaryFile, TemporaryDirectory, and ChangeToTempDir should all be moveable objects, but not copiable. Define default move constructors and move assignment operators for these classes. This will prevent copy constructor and copy assignment operators from being implicitly defined. Test Plan: Used this in a new test to write a helper function which created and returned a new TemporaryFile object using the move constructor. Reviewed By: yfeldblum@fb.com Subscribers: doug, net-systems@, exa, folly-diffs@, yfeldblum FB internal diff: D1945134 Signature: t1:1945134:1427342944:3428327e797ce4b3d362f9a2d2276de6d8b96137
-
Hannes Roth authored
Summary: 1] The lambda should ble able to return a `Try<T>`. Maybe? Can a `then` return a `Try<T>` actually? Can fix this with `resultOf`. (Doubling the number of functions to 4.) 2] `initial` and `func` have to be copyable. Test Plan: Added tests. Reviewed By: hans@fb.com Subscribers: trunkagent, folly-diffs@, jsedgwick, yfeldblum FB internal diff: D1870996 Tasks: 6025252 Signature: t1:1870996:1427318511:2ae5894b79022da88990835b26d35c4520fdbd29
-