- 29 Dec, 2016 3 commits
-
-
Anirudh Ramachandran authored
Summary: Enable folly to build with OpenSSL alternatives (e.g., BoringSSL). Some SSL-related tests are disabled: - Async session cache ones (BoringSSL has an async cache impl but with a different API) - TFO tests - Some changes to error tests which expect specific error strings. This is flaky as a test because it will break everytime even within a version, so we should fix that first. This should be a noop for OpenSSL 1.0.2. BoringSSL commit used is 35c8afd3143289c99aa3820e01950c564d7aced8 (10/26/2016) Closes: https://github.com/facebook/folly/issues/198 Reviewed By: siyengar Differential Revision: D3280382 fbshipit-source-id: 4141d992e0d8dd797ac4af479cfe90844a23278f
-
Yedidya Feldblum authored
Summary: [Folly] `folly::copy`. Usable when you have a function with two overloads: class MyData; void something(MyData&&); void something(const MyData&); Where the purpose is to make copies and moves explicit without having to spell out the full type names - in this case, for copies, to invoke copy constructors. When the caller wants to pass a copy of an lvalue, the caller may: void foo() { MyData data; something(folly::copy(data)); // explicit copy something(std::move(data)); // explicit move something(data); // const& - neither move nor copy } Reviewed By: markisaa, ericniebler Differential Revision: D3462023 fbshipit-source-id: 6c777be288f2a7012c1b4b46dc988890b8662595
-
Philip Pronin authored
Summary: API of `UNSYNCHRONIZED` is confusing as if you have two nested `SYNCHRONIZED` blocks, `UNSYNCHRONIZED` always unlocks the inner-most, even if you pass in the variable name used in the outer `SYNCHRONIZED` block. The macro was marked as "deprecated" in D3526489, remove it here. Reviewed By: yfeldblum Differential Revision: D4371297 fbshipit-source-id: 13ddc1ff77cb3d5045844c5ade0e95dbe2bccf6d
-
- 28 Dec, 2016 1 commit
-
-
Yedidya Feldblum authored
Summary: [Folly] A smaller implementation of `try_and_catch`. No longer done as a derived class. This lets us make the protected members of `exception_wrapper` into private members. Reviewed By: ericniebler Differential Revision: D4366065 fbshipit-source-id: ae4763b55e431ac08260f74f6a23a257581247c9
-
- 27 Dec, 2016 3 commits
-
-
Adrian Hamza authored
Summary: Make UncaughtExceptionCounter public by moving it from folly/detail to folly. I am adding a scope performance counter that works in a similar way to SCOPE_EXIT/SCOPE_ERROR and I need the UncaughtExceptionCounter functionality. Reviewed By: yfeldblum, ericniebler Differential Revision: D4342783 fbshipit-source-id: a1848e89cbb6340e2ac48adabf7bf76cece1b86d
-
Eric Niebler authored
Summary: The Doxegen-generated documentation for exception_wrapper is unreadable. The code needs to be denoted with \code...\endcode tags; otherwise, it is formatted like a paragraph and newlines are ignored. Reviewed By: igorsugak Differential Revision: D4367636 fbshipit-source-id: 680bedfb152300d8a6287bf441dd9b81b9b94c80
-
Christopher Small authored
Summary: folly::Random was taking the RNG by value (not reference) so it was not updating the RNG's state on each invocation -- so the RNG would not advance to the next value in the sequence. Reviewed By: yfeldblum, nbronson Differential Revision: D4362999 fbshipit-source-id: f93fc11911b92e230ac0cc2406151474d15f85af
-
- 25 Dec, 2016 1 commit
-
-
Sven Over authored
Summary: Histogram-defs.h depends on Histogram.h, so it should include it. This missing dependency is especially annoying because users who include both Histogram.h and Histogram-defs.h will find that clang-format reorders the includes such that Histogram-defs.h will be included before Histogram.h, which breaks the build. Same for BucketedTimeSeries-defs.h and TimeseriesHistogram-defs.h. Reviewed By: pixelb Differential Revision: D4366282 fbshipit-source-id: 518ef315154c28beb091e5c097db2bec6eea3ba0
-
- 24 Dec, 2016 1 commit
-
-
Yedidya Feldblum authored
Summary: [Folly] Fix a wrong filename in a comment in `ExceptionWrapper.h`. Reviewed By: pixelb Differential Revision: D4366224 fbshipit-source-id: cab31dc0a934ae9e9714436e28c8a1a295f7d3de
-
- 23 Dec, 2016 2 commits
-
-
Christopher Dykes authored
Summary: Because `std::chrono` makes it clear exactly what unit of time is in use. Reviewed By: yfeldblum Differential Revision: D4363560 fbshipit-source-id: 47aeef21f842f39d8e886bec441897ecf1f3761b
-
Jacob Bower authored
Summary: The hard requirement for libdwarf when building libfollyinit does not appear to be needed. Without libfollyinit, code with calls to folly::init() won't build. Notably this is breaking build/execution of tests + examples for the Watchman C++ client in Watchman. Reviewed By: yfeldblum Differential Revision: D4361498 fbshipit-source-id: f3586d8cdca36eda3634663e95a4a61d879de6cf
-
- 22 Dec, 2016 8 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Move `Thrower` into `exception_wrapper`. It is only used by `exception_wrapper`, so it might as well be a member type. Also, make it private. That means we need to tweak `try_and_catch`. Since we are tweaking `try_and_catch`, tweak all similar cases. Reviewed By: luciang Differential Revision: D4361815 fbshipit-source-id: c5025894465a2c7760bd79dbbd272079fd34dd79
-
Yedidya Feldblum authored
Summary: [Folly] Move the guts of `try_and_catch` into a `detail` namespace. Just a bit cleaner this way. Also, now we always slice before returning the derived object, so the derived type never escapes. Reviewed By: luciang Differential Revision: D4361471 fbshipit-source-id: 5c9567d3c5480ee9943a85139b8f27ba3b9da2d6
-
Jason Leng authored
Summary: Updated the future interrupts example to get rid of the shared pointer circular reference problem Reviewed By: djwatson Differential Revision: D4360037 fbshipit-source-id: cb959929a508df4dcf3b81d01012bc55044a0b17
-
Jacob Bower authored
Summary: As part of open-sourcing the Watchman C++ client I'm adding an (optional) dependency in Watchman to Folly. When I tried to build this client with Folly on OS X I ran into some problems using the libfolly pkg-config file. This diff addresses these issues: 1. When using `build/bootstrap-osx-homebrew.sh`, the compile config for gflags and OpenSSL are overriden. If present, these custom flags will now be propagated to `libfolly.pc`. 2. I changed the the package requirements in `libfolly.pc` from `Requires.private` to just `Requires`. Both of these changes are needed as much of Folly's implementation is in header files. As such, consumers of libfolly need to use the same library/include paths when building. Reviewed By: yfeldblum Differential Revision: D4332720 fbshipit-source-id: 6a051ae318ac10bdeb4dc383a16de81f1c0327bb
-
Yedidya Feldblum authored
Summary: [Folly] `to_weak_ptr`. Make a `weak_ptr` and return it from a `shared_ptr` without specifying the template type parameter and letting the compiler deduce it. So you can write this: auto wptr = to_weak_ptr(getSomethingShared<T>()); Instead of this: auto wptr = weak_ptr<T>(getSomethingShared<T>()); Useful when `T` is long, such as: using T = foobar::FooBarAsyncClient; Reviewed By: nbronson Differential Revision: D4361276 fbshipit-source-id: 782a1d2d57b6e5823cb4018e445110098f1ce41f
-
Christopher Dykes authored
Summary: `FileUtil.cpp` uses `fchmod`, which Windows doesn't have, so implement it and also include the correct portability headers for the use of `mkstemp` and now `fchmod` as well. Reviewed By: yfeldblum Differential Revision: D4360650 fbshipit-source-id: 300163689c54574548e7bf274a56264714d216ed
-
Yedidya Feldblum authored
Summary: [Folly] Add missing includes in `folly/experimental/observer`. In particular, the missing includes of `folly/ExceptionString.h`. Motivation. Reviewed By: andrewjcg, nbronson Differential Revision: D4360991 fbshipit-source-id: 4e4407669926b55d6d85df08edea70784a8f348c
-
Amir Shalem authored
Summary: RefCounted struct contains a pointer to `Char data_[1]` This saved us a +1 when calculating sizes for the null terminator, but the compiler made the struct size to be 16, instead of a 8+1. Reviewed By: Gownta, ot Differential Revision: D4356429 fbshipit-source-id: 420694feb4b367b0c73d44f83c21a9559ac5e7a3
-
- 21 Dec, 2016 2 commits
-
-
Christopher Dykes authored
Summary: It was incorrectly typed. Reviewed By: yfeldblum Differential Revision: D4351015 fbshipit-source-id: b0114d536db66ff4429fa135e9ed7b2051a42d6e
-
Amir Shalem authored
Summary: When reallocating new large string, using reserveLarge(), make sure to update the new capacity for the RefCounted string data to reflect the amount of data allocated by jemalloc for our block (using goodMallocSize()) Reviewed By: Gownta Differential Revision: D4355440 fbshipit-source-id: f2d58e8888e973418781220d57ff46f674e20556
-
- 20 Dec, 2016 5 commits
-
-
Eric Niebler authored
Summary: folly::FunctionRef never allocates memory and is cheaper to pass around. Use it in the interface of EventBase where we can. Reviewed By: yfeldblum Differential Revision: D4353992 fbshipit-source-id: 259c5214ed48d30981eb8e38b062aad31d80a080
-
Michael Lee authored
Summary: The sysconf return type is supposed to be long, not unsigned. Reviewed By: Orvid Differential Revision: D4350903 fbshipit-source-id: 29d86081bf75d123e76b831a669b0fd3936ce102
-
Christopher Dykes authored
Summary: Because it finds dead code. This also removes the dead code found. Reviewed By: yfeldblum Differential Revision: D4342893 fbshipit-source-id: e500734ff5927320b2356106d10016e298d67393
-
Misty De Meo authored
Summary: gflags's pkg-config file is installed by default under the name gflags.pc; however, folly has been searching for it under the name libgflags.pc. Several package managers (Homebrew, apt) install the .pc file under its default upstream name; as such it seems appropriate for folly to look for it under that name, too. refs Homebrew/homebrew-core#7977. Closes https://github.com/facebook/folly/pull/531 Reviewed By: yfeldblum Differential Revision: D4348089 Pulled By: Orvid fbshipit-source-id: 6adec290ec88b5d3f66103cf8e5094e99f2512ad
-
Guobao Sun authored
Summary: Test case ThreadLocal.SharedLibrary is failing due to looking for "thread_local_test_lib.so", while the actual .so generated is "lib_thread_local_test.so". Change Makefile.am to conform it. Reviewed By: Orvid Differential Revision: D4350758 fbshipit-source-id: 9a2a23325059ed71529821620398ffa6ed84f83e
-
- 19 Dec, 2016 3 commits
-
-
Eric Niebler authored
Summary: This corrects an oversight in folly::Expected where self-assign was not being detected correctly due to a half-applied edit. Reviewed By: yfeldblum Differential Revision: D4348181 fbshipit-source-id: 710b25c4c6d7aeaaea50493ccc5788d875ec4c2e
-
Jim Meyering authored
Summary: Fix a warning exposed by gcc's -Wshadow-compatible-local. Rename inner "lockStolen" to "stolen". Differential Revision: D4346385 fbshipit-source-id: 323cb6c96ecfe18b5540525f4124dbd75faf0b1b
-
Jim Meyering authored
Summary: Fix a warning exposed by gcc's -Wshadow-compatible-local option. Rename inner "i" to "j". Reviewed By: knekritz Differential Revision: D4346505 fbshipit-source-id: f0a4ac32fefd6614900e58d1c8c7f15e8934fd04
-
- 18 Dec, 2016 1 commit
-
-
Mathieu Baudet authored
Summary: This is a first diff to remove the "easiest" unused includes in fbcode. * For safety, we only touch .cpp files without #if and #define, * We do not try to remove redundant systems headers (aka. "packing"). The diff was generated as follows: ``` foundation/scripts/ls-cpp-dirs | grep -v '^\(\.\.\|external/\|.*/external\)' | xargs ffmr -o /tmp/ffmr-diff-1 codegraph/scripts/ffmr/analyze_includes_no_headers_no_packing_skipping_ifdefs.sh cat /tmp/ffmr-diff-1/*.diff | patch -p2 hg commit -m something arc diff --prepare --nolint --nounit --less-context --excuse refactoring ``` Note: `grep -v` is just an optimization. The actual configuration is in these two files: diffusion/FBS/browse/master/fbcode/codegraph/analysis/config.py diffusion/FBS/browse/master/fbcode/codegraph/scripts/ffmr/analyze_includes_no_headers_no_packing_skipping_ifdefs.sh See the task for more context, and the recent "safety" improvements on the tool. depends on D4317825 for very few cases where `nolint` had to be manually added. Reviewed By: igorsugak Differential Revision: D4312617 fbshipit-source-id: ecc1f0addfd0651fa4770fcc43cd1314661a311a
-
- 17 Dec, 2016 2 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Let `ScopedEventBaseThread` destruct the `EventBase` in the IO thread. Reviewed By: andriigrynenko Differential Revision: D4330951 fbshipit-source-id: 5b0e7071800e1d49048b08aa1233d72b820fe55d
-
Yedidya Feldblum authored
Summary: [Folly] Split `EventBaseThread` from `ScopedEventBaseThread`. Now `ScopedEventBaseThread` is really scoped and immovable, while `EventBaseThread` is movable and can be started and stopped. Users which will never move, and will never start or stop, the `ScopedEventBaseThread` can continue using it. Users which need to move, or which need to start and stop, the object will use `EventBaseThread` instead. Reviewed By: andriigrynenko Differential Revision: D4338447 fbshipit-source-id: 57c186630bc199a7a7b7223b1fcb077ce3d86743
-
- 16 Dec, 2016 8 commits
-
-
Christopher Dykes authored
Summary: More progress towards being able to build Folly cleanly with MSVC's truncation and sign coersion warnings enabled. Reviewed By: yfeldblum Differential Revision: D4288060 fbshipit-source-id: ce42d2099163ed5a9c9a9bb736a80bb2407f7595
-
Junlin Zhang authored
Summary: In FunctionScheduler, cancelFunction and cancelAllFunction will not wait for current running function, which will lead to segmentation fault if the function captures resource to be destructed right after calling cancelFunction or cancelAllFunction. This diff introduces cancelFunctionAndWait and cancelAllFunctionsAndWait, making it possible to wait for completion of current running function. Reviewed By: yfeldblum Differential Revision: D4324384 fbshipit-source-id: ac4b272894f753ef3bb175173f10d1ca20c17c41
-
Andrii Grynenko authored
Summary: TimedMutex is a fair mutex, which can cause a deadlock if same mutex is requested first in a fiber, and then in main context. Reviewed By: yfeldblum Differential Revision: D4209155 fbshipit-source-id: 0623d9a2e6a0b5cc310fb71ad1b1cf33afd6a30e
-
Yinghai Lu authored
Summary: BEXTR is an instruction in BMI set, which extract given number of bits from a 64 bit register starting from a given position. The position and size of extracted bits are packed into a one 64bit integer. Reviewed By: Orvid Differential Revision: D4316516 fbshipit-source-id: 3f752388763b0e26c506d7d49cf6c05cf28271c0
-
Christopher Dykes authored
Summary: This reverts commit 8178dacc9268e1001efc5f803a35ef49e23d692a Differential Revision: D4310312 fbshipit-source-id: 7c4b90e834f1a95e51524e1e82ac5294e5ba2dc5
-
Yedidya Feldblum authored
Summary: [Folly] Always use an `EventBaseManager` with `ScopedEventBaseThread`. Reviewed By: andriigrynenko Differential Revision: D4336412 fbshipit-source-id: 459a679f8fda0db1ca0a9fdca2f852bb00c5231e
-
Christopher Dykes authored
Summary: Because it finds dead code. This also removes the dead code found. Reviewed By: yfeldblum Differential Revision: D4310312 fbshipit-source-id: 8178dacc9268e1001efc5f803a35ef49e23d692a
-
Christopher Dykes authored
Summary: This allows folly to compile with warnings 4245, 4287 and 4365 enabled, all of which are sign mismatch warnings. This is labeled as 'mostly' because I'll probably have to clean up a few more of these. Reviewed By: yfeldblum Differential Revision: D4263259 fbshipit-source-id: 0db618f0405817503a63094edd75b24ec1e5c9ad
-