- 02 Apr, 2015 4 commits
-
-
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 19 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
-
Naizhi Li authored
Summary: I will be using multi-buf UDP send soon, so adding the support in folly::AsyncUDPSocket Test Plan: Unit tests and turn server Reviewed By: davejwatson@fb.com Subscribers: trunkagent, folly-diffs@, yfeldblum FB internal diff: D1907189 Signature: t1:1907189:1426266951:046198e0a009fef085ac7eb44f054c67dfb16ba3
-
Adam Simpkins authored
Summary: Add a helper method to efficiently check if the cursor is at the end of the IOBuf chain. This is equivalent to (cursor.totalLength() > 0), but it doesn't need to walk the entire chain just to tell if it is at the end or not. Test Plan: Updated the unit tests to contain some checks for isAtEnd(). Reviewed By: jasmeetbagga@fb.com Subscribers: trunkagent, doug, net-systems@, exa, folly-diffs@, yfeldblum FB internal diff: D1875345 Signature: t1:1875345:1425006512:49ac246fd0ac7937fdcd6cf1359a841f048c444e
-
Stepan Palamarchuk authored
Summary: This used to be protected before. Test Plan: folly/futures tests Reviewed By: andrii@fb.com Subscribers: trunkagent, folly-diffs@, jsedgwick, yfeldblum FB internal diff: D1907063 Signature: t1:1907063:1426116657:d7430304d5f72a048396e83f8dc6b5a92198fb29
-
Matt Dordal authored
Summary: By default, CPUThreadPoolExecutor uses 100 MB of rss for the CPU queue. This is substantially higher than expected. Reduce the default queue size so that it uses much less memory upfront, down to about 6 MB going by the heap profile. Reviewed By: davejwatson@fb.com Subscribers: mwa, ott, iaroslav, jrsherwood, aflock, slarsen, davejwatson, trunkagent, fugalh, folly-diffs@, jsedgwick, yfeldblum FB internal diff: D1900539 Tasks: 6453427 Signature: t1:1900539:1426103805:34fb7b081058fbde89370b5d9ec24ea572c4b0e2
-
Nathan Bronson authored
Summary: D1798929 broke the automake folly build Test Plan: 1. careful visual inspection 2. build Reviewed By: alikhtarov@fb.com Subscribers: folly-diffs@, yfeldblum FB internal diff: D1906281 Signature: t1:1906281:1426106340:621f1e7d2fb18ae2ec5dc604dea0d8ad4353486e
-
Nathan Bronson authored
Summary: SharedMutex is a reader-writer lock. It is small, very fast, scalable on multi-core, and suitable for use when readers or writers may block. Unlike most other reader-writer locks, its throughput with concurrent readers scales linearly; it is able to acquire and release the lock in shared mode without cache line ping-ponging. It is suitable for a wide range of lock hold times because it starts with spinning, proceeds to using sched_yield with a preemption heuristic, and then waits using futex and precise wakeups. SharedMutex provides all of the methods of folly::RWSpinLock, boost::shared_mutex, boost::upgrade_mutex, and C++14's std::shared_timed_mutex. All operations that can block are available in try, try-for, and try-until (system_clock or steady_clock) versions. Both reader-priority and writer-priority versions are provided. Writer-priority is the default at the moment. In my tests SharedMutex is as good or better than the other reader-writer locks in use at Facebook for almost all use cases, sometimes by a wide margin. (If it is rare that there are actually concurrent readers then RWSpinLock can be a few nanoseconds faster.) I compared it to folly::RWSpinLock, folly::RWTicketSpinLock64, boost::shared_mutex, pthread_rwlock_t, and an internal RWLock that uses spinlocks to guard its state and pthread_mutex_t+pthread_cont_t to perform blocking. (The other ReadWriteMutex-s I found use pthread_rwlock_t underneath.) It is generally as good or better than the rest when evaluating size, speed, scalability, or latency outliers. In the corner cases where it is not the fastest (such as single-threaded use or heavy write contention) it is never very much worse than the best. See the bottom of SharedMutexTest.cpp for lots of microbenchmark results. Test Plan: 1. new unit tests 2. new microbenchmarks included here 3. uncommitted microbenchmark from bmaurer's RWSleepLock 4. replace admarket's RWSpinLock and RWLock with SharedMutex, observe neutral adindexer perf in canary 5. replace multifeed's thrift ReadWriteLock with SharedMutex, observe neutral perf in canary Reviewed By: hans@fb.com Subscribers: fbcode-common-diffs@, tnovak, march, davejwatson, trunkagent, philipp, folly-diffs@, yfeldblum, bwatling, bmaurer, bol, marccelani, adri, strager, macsyz, dzhulgakov, zamsden FB internal diff: D1798929 Signature: t1:1798929:1425575976:1c9221317eaa47628a2b8c374f90c7a2d4e3f0f9
-
Adrian Hamza authored
Summary: Some unit tests owned by my team are failing due to segmentation fault in SingletonHolder<T>::registerSingletonMock -> SingletonHolder<T>::destroyInstance. Test Plan: Run folly unit tests and my unit tests. Reviewed By: henryf@fb.com Subscribers: trunkagent, folly-diffs@, yfeldblum FB internal diff: D1873889 Signature: t1:1873889:1425925156:29d54092939d7e9debea3fd55f7105fd320e987e Blame Revision: 91f4942e
-
Andrey Goder authored
Summary: This is a validator for JSON schema (http://json-schema.org/) that works on folly::dynamic. Apparently there are no good open source ones for C++, especially not if you want to use folly::dynamic. I am going to use this to validate JSON configs. It supports basically everything from the standard, except for fetching schemas via http, and using id refs. It supports enough to check schemas against the metaschema. Currently you can define a schema that will crash on validation, if it's infinitely self-recursive. See the unit test case that reproduces this. Fixing this seems hard though, so I didn't bother. It would also probably be slower for normal usage. Test Plan: unit test Reviewed By: lesha@fb.com Subscribers: trunkagent, folly-diffs@, yfeldblum FB internal diff: D1847657 Signature: t1:1847657:1425605163:635dc523aeda1b588c3634d0dc1a48d50a53db79
-
- 06 Mar, 2015 2 commits
-
-
Viswanath Sivakumar authored
-
Mark Isaacson authored
Summary: Remove unnecessary includes from FBVector Gonna see just how cleaned-up sandcastle really is :P Test Plan: Fix errors shown in contbuild Reviewed By: njormrod@fb.com Subscribers: cold-storage-diffs@, jcoens, ldbrandy, trunkagent, oleksandr, netego-diffs@, mmandal, weiyan, ws_dev_diffs, jmkaldor, jhunt, fbcode-common-diffs@, njormrod, folly-diffs@, yfeldblum FB internal diff: D1873145 Signature: t1:1873145:1425505591:9cb345053833afa70f543e2f7acd310ab80b8676
-
- 05 Mar, 2015 2 commits
-
-
Nicholas Ormrod authored
-
Dave Watson authored
Summary: Cleans up the httpserver startup code nicely. The only major change to ServerBootstrap was a check if bind failed to throw an exception. (depends on D1732895) Test Plan: fbconfig -r folly/wangle/bootstrap proxygen/httpserver; fbmake runtests fbconfig -r dfsrouter; fbmake runtests Reviewed By: hans@fb.com Subscribers: yfeldblum, cgheorghe, trunkagent, doug, fugalh, bmatheny, folly-diffs@, jsedgwick FB internal diff: D1800100 Signature: t1:1800100:1424733970:67a61a22d2affadea16d2fd725003915326077b2
-