- 02 Apr, 2015 16 commits
-
-
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
-
- 25 Mar, 2015 13 commits
-
-
Noam Lerner authored
-
Ben Maurer authored
Summary: Make it easy for people to mark code as deprecated Test Plan: Chose a random file and added the FOLLY_DEPRECATED macro to it Reviewed By: yfeldblum@fb.com Subscribers: ps, folly-diffs@, yfeldblum FB internal diff: D1943248 Signature: t1:1943248:1427316689:b3305d134f374697e93d36bafbf0961eec1ef68a
-
Sarang Masti authored
Summary: vsnprintf can return fewer bytes and bytes_used if we print a string containing '\0' using a width specifier. Test Plan: -- ran all tests Reviewed By: andrei.alexandrescu@fb.com Subscribers: folly-diffs@, yfeldblum FB internal diff: D1915035 Signature: t1:1915035:1426799341:4aaea928c4bdde1998bf66cf9e2732a53572c6e3
-
Dave Watson authored
Summary: Original diff D1800100, reverted in D1895181. Issue seems to have been caused by a copy constructor issue. Fixes: Remove copy constructor, move contructor only. Separate stop() and join(), since join() can happen only after all stop()s have completed when reusing the same IOThreadPoolExecutors. Test Plan: build and unit tests of relevant product Reviewed By: praveenr@fb.com Subscribers: trunkagent, doug, fugalh, alandau, bmatheny, mshneer, folly-diffs@, jsedgwick, yfeldblum FB internal diff: D1901718 Tasks: 6431975 Signature: t1:1901718:1426885577:46b63bfe117df207be3d273b953c100249c1a7da Blame Revision: D1895181
-
Alexey Spiridonov authored
Summary: It's convenient to be able to write tempfiles in the current directory. This provides a one-liner way of doing that in tests. Test Plan: unit test Reviewed By: yfeldblum@fb.com Subscribers: simpkins, folly-diffs@, yfeldblum FB internal diff: D1931918 Signature: t1:1931918:1426913634:f988fb3c5061f5909e309dcaf42742d9b2ed18c6
-
Andrii Grynenko authored
Summary: We want to print all destructor stack-traces if Singleton destruction happens eventually (even after destroyInstances() was done). Test Plan: unit test Reviewed By: chip@fb.com Subscribers: folly-diffs@, yfeldblum FB internal diff: D1929881 Signature: t1:1929881:1426878091:5993d544c0f84bdbf8bcdd420ef01fb7bf88ac3f
-
Dave Watson authored
Summary: major changes: 1) ServerSocketFactory and AsyncSocketBase to abstract the differences between UDP and TCP async socket. Could possibly push some of this to the sockets themselves eventually 2) pipeline() is a pipeline between accept/receive of a UDP message, and before sending it to workers. Default impl for TCP is to fan out to worker threads. This is the same as Netty. Since we don't know if the data is a TCP socket or a UDP message, it's a void*, which sucks (netty uses Object msg, so it isn't any different). Test Plan: Added lots of new tests. Doesn't test any data passing yet though, just connects/simple receipt of UDP message. Reviewed By: hans@fb.com Subscribers: alandau, bmatheny, mshneer, jsedgwick, yfeldblum, trunkagent, doug, fugalh, folly-diffs@ FB internal diff: D1736670 Tasks: 5788116 Signature: t1:1736670:1424372992:e109450604ed905004bd40dfbb508b5808332c15
-
Dave Watson authored
Summary: This code is only used in a test so far. Basically it looks like Pipeline has some dependency issues - any addBack() pipelines have to be deleted *after* the main pipeline is destroyed. Ideally if the pipeline is already closed, the destruction order wouldn't matter. There is currently no removeBack() call either. This is a quick fix for the test to just delete stuff in the right order, we can discuss a better solution when @jsedgwick returns Test Plan: fbconfig --sanitize=address --with-project-version=clang:3.5 --clang folly/wangle/service && fbmake runtests Reviewed By: hans@fb.com Subscribers: trunkagent, doug, fugalh, folly-diffs@, yfeldblum, jsedgwick FB internal diff: D1903200 Tasks: 6415578 Signature: t1:1903200:1426528298:e109dcc0ec586a505a26cd95a6f20434d22cbd37
-
Alexey Spiridonov authored
Summary: In my tests, using djb2 was much worse for any sizable workload. Just use SpookyHashV2. Test Plan: comment only Reviewed By: tudorb@fb.com Subscribers: trunkagent, folly-diffs@, yfeldblum FB internal diff: D1906439 Signature: t1:1906439:1426117575:f88b7b28b578092c1716433e21150d423d4e94a7
-
Sean Cannella authored
Summary: Calling getaddrinfo from a static constructor is not the most reliable thing to do. Stop doing it. Test Plan: existing tests Reviewed By: davejwatson@fb.com Subscribers: dancol, mzlee, shikong, kmdent, fma, bmatheny, benyluo, ranjeeth, folly-diffs@, jsedgwick, yfeldblum FB internal diff: D1924578 Tasks: 6534662 Signature: t1:1924578:1426718586:d73bc2f001095e66fa77fde9c027af050cc26d2a
-
Hannes Roth authored
Summary: I thought this might fix #6120972. But it doesn't. Still a bit of a cleanup in my opinion. Test Plan: Run all the tests? Reviewed By: hans@fb.com Subscribers: trunkagent, folly-diffs@, jsedgwick, yfeldblum FB internal diff: D1907259 Signature: t1:1907259:1426613567:9e33fe7e9e8a36ba006d4aee604086a56f128893
-
Andrey Goder authored
Summary: Sometimes we only want to log if enough time has passed, e.g. when logging inside of a loop doing work to detect if things are slow. Add an option for that. Test Plan: build and unit tests of folly/experimental Reviewed By: lesha@fb.com Subscribers: trunkagent, folly-diffs@, yfeldblum FB internal diff: D1909055 Signature: t1:1909055:1426627731:6d3ad94fd71967ec89ffebc90cd2907dd1631d36
-
Alexey Spiridonov authored
Summary: Ooops during port ;) Test Plan: unit test Reviewed By: agoder@fb.com Subscribers: trunkagent, folly-diffs@, yfeldblum FB internal diff: D1905639 Signature: t1:1905639:1426171227:a6e415046a85f098ac090f069476204fb0367c42
-
- 18 Mar, 2015 11 commits
-
-
Andre Azevedo authored
-
Nicholas Ormrod authored
Summary: Signed-off-by: Nicholas Ormrod <njormrod@fb.com> Test Plan: Clicked link, gtest started downloading Reviewed By: markisaa@fb.com Subscribers: sdwilsh, folly-diffs@, yfeldblum FB internal diff: D1901849 Tasks: 6255850 Signature: t1:1901849:1426097071:e887ed8749c70d5e15877082ac0175ce3b56647e
-
Praveen Kumar authored
Summary: BackoffTimeout disallow copy construction, copy assignment, move construction, move assignment, and default construction. Closes https://github.com/facebook/folly/pull/146 Test Plan: runtests Reviewed By: ldbrandy@fb.com Subscribers: lins, anca, folly-diffs@, yfeldblum FB internal diff: D1912521 Signature: t1:1912521:1426268413:6edb2d8203d1efd1e825816f03be115ac46e55ca
-
Praveen Kumar authored
Summary: It seems we might avoid temporaries. To do so we pass arguments directly to constructors with the help of emplace_back member. Test Plan: all folly/tests, make check for 37 tests, passed. Closes https://github.com/facebook/folly/pull/150 Reviewed By: ldbrandy@fb.com Subscribers: lins, anca, folly-diffs@, yfeldblum FB internal diff: D1912505 Signature: t1:1912505:1426268158:086882bb53f3d79c3f3b7b2c362318f09b5ee3be
-
Praveen Kumar authored
Summary: AsyncServerSocket disallow copy construction, copy assignment, move construction, move assignment, and default construction. Closes https://github.com/facebook/folly/pull/148 Test Plan: all folly/tests, make check for 37 tests, passed. Reviewed By: ldbrandy@fb.com Subscribers: lins, anca, folly-diffs@, yfeldblum FB internal diff: D1912488 Signature: t1:1912488:1426267982:a9690ce9429016f89630f0ded64b7be9ff80c39d
-
Alecs King authored
Summary: backslash Test Plan: tests Reviewed By: aap@fb.com Subscribers: folly-diffs@, yfeldblum FB internal diff: D1920872 Signature: t1:1920872:1426624366:c984fecb5bd0c292d5a8309fb320a48872fff6db Blame Revision: D1890511
-
Alecs King authored
Test Plan: unit tests Reviewed By: bwatling@fb.com Subscribers: stepan, folly-diffs@, yfeldblum, trunkagent, vikas, alikhtarov FB internal diff: D1890511 Tasks: 6311387 Signature: t1:1890511:1425924980:71af7c12a09a86b280dc3c9a9ef0756bf56bf639
-
Hans Fugal authored
Summary: Apparently `configure` creates this subdirectory and then the curl and unzip commands don't run, and then `make check` fails. Instead, do it if the zip file doesn't exist. Test Plan: git clone https://github.com/facebook/folly.git cd folly/folly /path/to/this/bootstrap-osx-homebrew.sh make make check Reviewed By: andrei.alexandrescu@fb.com Subscribers: exa, folly-diffs@, yfeldblum, davejwatson FB internal diff: D1882472 Signature: t1:1882472:1425920470:bdab25967d3b8e52c690d5627168077c65829b92
-
James Sedgwick authored
Summary: for consistency with exception and exception_ptr functions provided in String.h Test Plan: unit Reviewed By: vloh@fb.com Subscribers: trunkagent, folly-diffs@, yfeldblum FB internal diff: D1905087 Tasks: 5961362 Signature: t1:1905087:1426101740:670ceab5140250bbecdd1247025d3d70b7774690
-
Jeroen Vaelen authored
Summary: Added folly::Future<T>::poll() function with the following semantics: poll() checks if the promise has been fulfilled, if so it will extract the value of the resulting Try<T> to construct a new Try<T> that is wrapped in an Optional<Try<T>>. If the promise has not been fulfilled an empty Optional is returned. Test Plan: Added two tests to SugarTest.cpp: one where the promise has been fulfilled and one where it hasn't. Reviewed By: hannesr@fb.com Subscribers: trunkagent, folly-diffs@, jsedgwick, arturg, yfeldblum FB internal diff: D1909480 Tasks: 6166875 Signature: t1:1909480:1426280247:6b239c0f1a15c25ce7664afb4bfb3899993c5775
-
Matt Dordal authored
Summary: Seems useful to do without passing in a totally custom queue. Makes the client code a bit simpler. Test Plan: used it, saw low memory usage and no crash Reviewed By: davejwatson@fb.com Subscribers: trunkagent, iaroslav, fugalh, folly-diffs@, jsedgwick, yfeldblum, slarsen FB internal diff: D1907874 Signature: t1:1907874:1426268010:3159ae339b51f5dbc7fe034644bbc968b92b072c
-