- 12 Jun, 2018 2 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] A cache for `InlineExecutor` singleton, which can be inlined into callers with little extra code compared to calling the backing function directly. Reviewed By: marshallcline Differential Revision: D8339793 fbshipit-source-id: d2be0128e617cfefe66809eb44ce40e1a8ae2dfb
-
Yedidya Feldblum authored
Summary: [Folly] Write `Promise::setException` in terms of `Promise::setTry`. Reviewed By: marshallcline Differential Revision: D8344928 fbshipit-source-id: 90e21219f054329eca7ae1a6c2ca731a16328b6f
-
- 11 Jun, 2018 5 commits
-
-
Jan Oravec authored
Revert D8360404: [folly] Support constructing TDigest from centroids and getting centroids from TDigest Differential Revision: D8360404 Original commit changeset: b0f42e892f66 fbshipit-source-id: 985ba55bb443aafe7c324f15caeca0abb34d200a
-
Shen Xu authored
Summary: Before this diff, since `ctx->memo_` starts out in the `OnlyResult` state, the first reduce (and therefore all subsequent reduces) are run immediately inside the lock. Reviewed By: yfeldblum Differential Revision: D8319067 fbshipit-source-id: 5ed08885beefb42c6efb61768fcbc36e0a08a46b
-
Alfredo Altamirano authored
Summary: To implement tdigest aggregation in scuba, we need to be able to deserialize and serialize the digests. I added a getter for the centroids so that we can serialize the tdigest, and added a constructor to create one from the list of centroids. Differential Revision: D8360404 fbshipit-source-id: b0f42e892f666e787e06198c7e8ff65dd8799dcc
-
Andre Pinto authored
Summary: In folly::small_vector, we were (mistakenly) relying on a default constructor for non-trivially constructible types. The problem got worse on gcc 4.9, because for that compiler version, we set folly::is_trivially_copyable to be std::is_trivial. This is mostly okay, as std::is_trivial implies std::is_trivially_copyable. The problem is that std::is_trivial also implies std::is_default_constructuble, which which was breaking folly::small_vector Reviewed By: yfeldblum Differential Revision: D8346780 fbshipit-source-id: 9c8a9dab21ea2d4fd34f636458324915c30e10a2
-
Mohamed Akram authored
Summary: See https://gitlab.kitware.com/cmake/cmake/issues/16686 This patch was originally contributed to MacPorts by mohd-akram in https://github.com/macports/macports-ports/pull/1933. Closes https://github.com/facebook/folly/pull/862 Reviewed By: Orvid Differential Revision: D8346974 Pulled By: yfeldblum fbshipit-source-id: 2673e1f414dd86bf91bb2183c2f6d9f7e72251f8
-
- 09 Jun, 2018 4 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] A shorter name for executor local variable in `Future` methods. Reads more nicely, with less awkward formatting. When the scope of a local variable's use is just a few lines, long names are not quite so critical. Reviewed By: marshallcline Differential Revision: D8339451 fbshipit-source-id: 5d50cf0ce3473c1a79afeeddb9e1257cccf73e31
-
Yedidya Feldblum authored
Summary: [Folly] No need for qualifying `InlineExecutor` in `Futures` - they are both in `namespace folly` already. Reviewed By: marshallcline Differential Revision: D8307058 fbshipit-source-id: 17a0ecde1e57f1c0c88cbac09bbd1bb3daf7a24e
-
Yedidya Feldblum authored
Summary: [Folly] Use `InlineExecutor` singleton in `Future` wait v.s. letting the executor be `nullptr`. The effect is the same, but just more explicit. Reviewed By: marshallcline Differential Revision: D8306902 fbshipit-source-id: fc90704de670b1ca9956253383fadad3be297847
-
Andrii Grynenko authored
Summary: Executor adaptor which allows joining only tasks scheduled through this VirtualExecutor instance without joining all other tasks in a wrapped Executor. This is very similar to VirtualEventBase, but works for any Executor. Reviewed By: yfeldblum, aary Differential Revision: D8342064 fbshipit-source-id: 420b6390e2da88c4826e6d22bc8f3b3585525214
-
- 08 Jun, 2018 7 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Ensure sleep duration in logging `RateLimiter` test to make sure that there is no chance of waking up from the sleep too early. Reviewed By: Orvid Differential Revision: D8330018 fbshipit-source-id: f1222e1da50f8360267f9e1c5e0f24897b7b8f47
-
Nathan Bronson authored
Reviewed By: shixiao Differential Revision: D8333485 fbshipit-source-id: 02f74700272b663474c2f02535265ffb6f4bcd22
-
Marshall Cline authored
Summary: method-level contracts (Note: this ignores all push blocking failures!) Reviewed By: yfeldblum Differential Revision: D8132350 fbshipit-source-id: d79b1d88a38ea97de8d0e841e822805aff3959ae
-
Saif Hasan authored
Summary: fbthrift needs to link against newer version of krb5 library to avoid linking issue during OpenR build. ``` libsecurity.so: undefined reference to `error_message(long)' ``` Reviewed By: yfeldblum Differential Revision: D8330387 fbshipit-source-id: 34f3f7361c99bb38adf558a52ef05e9d3156640d
-
Tingzhe Zhou authored
Summary: Make the interface consistent with the other queue algorithms. push try_push try_push_for try_push_until pop try_pop try_pop_for try_pop_until peek try_peek try_peek_for try_peek_until Reviewed By: yfeldblum, djwatson Differential Revision: D8262170 fbshipit-source-id: 0299e947a0069eacafd1315c920ec6e1b36675f3
-
Andrii Grynenko authored
Summary: Weak reference can be used if it's ok for some tasks to be dropped when Executor is destroyed. Reviewed By: yfeldblum Differential Revision: D8309958 fbshipit-source-id: 8ecc86a8be181a9eb695aa12305b2a30b6f4b60e
-
Michael Park authored
Summary: Moved `Future::within` to `FutureBase::withinImplementation`, and changed it to return a `SemiFuture`. `SemiFuture::within` uses it directly, and `Future::within` uses it then attaches the current executor or falls back to the inline executor to preserve existing behavior. Reviewed By: yfeldblum Differential Revision: D8269907 fbshipit-source-id: 76e235a2ecb2c648603961d0ac0ac17bf646d027
-
- 07 Jun, 2018 3 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Support self-copy in `small_vector`. And refactor move-assignment to look like the fixed copy-assignment for symmetry. Reviewed By: Ahmed-Salama Differential Revision: D8321122 fbshipit-source-id: 2c8b26ad6c4e538266082df29276b827cf4505fc
-
Xiao Shi authored
Summary: When vector intrinsics are not available, `visitAllocationClasses` fails to compile as it is a member function of a template class and it invokes a member function of a template base class without explicit `this->`. Reviewed By: yfeldblum, nbronson Differential Revision: D8300168 fbshipit-source-id: 1c1619bd1c864535648e531b218d2cf1ffef767b
-
Alexander Blom authored
Summary: VLOG(1) shows up in Android logs, which is annoying as some of our tools try to repeatedly connect. Reviewed By: yfeldblum Differential Revision: D8297987 fbshipit-source-id: 45cf4320d2e2fcf570117fee6aef133b2d9986e6
-
- 06 Jun, 2018 4 commits
-
-
Caleb Marchent authored
Summary: There is no guarantee that the default branch in git is 'master'; so unless specified we checkout a tag along the 'dev' branch, which is not intended as it is the master branch that tracks releases for Zstd. Reviewed By: jstrizich Differential Revision: D8297843 fbshipit-source-id: 8497dc75c399ae7c86e27b28fdb73898ef4b1a4e
-
Michael Park authored
Summary: `s/Future/SemiFuture/` on `SemiFuture` ctor and fixed typo `s/Timeekeeper/Timekeeper/`. Reviewed By: yfeldblum Differential Revision: D8290658 fbshipit-source-id: 99ddbdecc0302e620bd2b4ebce74c6080cf81aec
-
Lee Howes authored
Make Future<T>::delayed complete on correct executor 5/n: Add back Future::delayed with correct behaviour Summary: Overall plan to modify Future<T>::delayed to complete on the same executor as the input future. [folly::Futures] Make Future<T>::delayed complete on correct executor 5/n: * Add back future::delayed. * Have Future::delayed complete on input executor. * r-value qualify Future::delayed Reviewed By: yfeldblum, marshallcline Differential Revision: D8238220 fbshipit-source-id: 79afa8cc9a9fe588609ad186ad62f714ee322f7d
-
Yedidya Feldblum authored
Summary: [Folly] Let `Sychronized` move-constructor not lock the source object, since it is an rvalue-reference and the move-constructor code may therefore be assumed to have the only live reference to the source. Same with the move-assignment operator. Reviewed By: aary Differential Revision: D8219883 fbshipit-source-id: f62ff87197ac4b9ceed290a73a05062ab8ed45c4
-
- 05 Jun, 2018 5 commits
-
-
Felix Handte authored
Summary: Reusing a context can provide significant efficiency benefits. Depends on D8172871. Reviewed By: yfeldblum, terrelln Differential Revision: D8287767 fbshipit-source-id: 2565e7a959b2ac0911f0a4d6e1596f9da6d12ee8
-
Felix Handte authored
Summary: Reusing a context can provide significant efficiency benefits. Depends on D8172801. Reviewed By: yfeldblum, terrelln Differential Revision: D8172871 fbshipit-source-id: f92c85410a35643502d28922583ee0ed0b4386c9
-
Neel Goyal authored
Summary: Clear/read OpenSSL errors after certain ops. Reviewed By: mingtaoy Differential Revision: D8277088 fbshipit-source-id: aa436657c3bca3a081cd56858e09da57a03cda05
-
Dan Melnic authored
Summary: Use static FOLLY_TLS ThreadEntry to avoid an ASAN deadlock due to new after fork Reviewed By: philippv Differential Revision: D8272580 fbshipit-source-id: e2dc069e81d15f14be9f96a26d30de7482ced0cf
-
Sergey Zhupanov authored
Summary: Replaced boost::algorithm::to_lower() with std::transform() Reviewed By: yfeldblum Differential Revision: D8264760 fbshipit-source-id: f6faa46c0bbced3a08c02b93eacbb58eb6927890
-
- 04 Jun, 2018 4 commits
-
-
Nick Terrell authored
Summary: * One function needed renaming * One bug needed to be worked around (content size defaulting to 0) Reviewed By: yfeldblum Differential Revision: D8264565 fbshipit-source-id: 1abe5fb79b525108e64857dc28d5582372fcc165
-
Phil Willoughby authored
Summary: The instance method is permitted on `const` objects, so the ADL method should also accept a `const&` input. Reviewed By: yfeldblum Differential Revision: D8240295 fbshipit-source-id: 960aa5567afea3f52b91c1b83566820f5ecefc4d
-
Daniel Xu authored
Summary: IntervalRateLimiter was already operating on millisecond granularity. coarse_steady_clock offers better performance because it's on millisecond granularity. Reviewed By: yfeldblum Differential Revision: D8245042 fbshipit-source-id: 7ce0e347c0498ff2741adc727577c3bb2ce63979
-
Dan Melnic authored
Summary: Iterate only through the threads that have in use entries - v2 Reviewed By: djwatson Differential Revision: D8143429 fbshipit-source-id: 51098ff8e1fef7aaf9f1c0f2ddbf7ebb579cbeb4
-
- 03 Jun, 2018 2 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Cut `FOLLY_IS_TRIVIALLY_COPYABLE` macro, replacing all uses with `folly::is_trivially_copyable`. And cut `folly::IsTriviallyCopyable` with member-type-detection support, and move `folly::traits_detail::is_trivially_copyable` to `folly::is_trivially_copyable`. `FOLLY_IS_TRIVIALLY_COPYABLE` and `folly::IsTriviallyCopyable` were there to support gcc < 5. Reviewed By: Orvid Differential Revision: D8246972 fbshipit-source-id: 8af9bbdbfac8671a61ebaa200dbfd2426a40d2eb
-
Nathan Bronson authored
Summary: x86_64 chips with SSE >= 4.2 and many aarch64 chips have CRC32-specific instructions with excellent latency. This diff switches the bit mixer applied to untrusted hash functions to use these instructions. This is a noticeable win for the F14 uses that are CPU front-end bound. Reviewed By: yfeldblum Differential Revision: D8245688 fbshipit-source-id: f6a1c1c2a6365201178c653cd5d8c04fbac8d78e
-
- 02 Jun, 2018 1 commit
-
-
Lee Howes authored
Summary: Overall plan to modify Future<T>::delayed to complete on the same executor as the input future. 4/n: Remove Future::delayed completely to ensure that all users are on delayedUnsafe so that when we put delayed in with correct behaviour there is no incorrect use. Reviewed By: marshallcline Differential Revision: D8223327 fbshipit-source-id: c675d2d51afa2131eee5871afea45f1c6cc65a77
-
- 01 Jun, 2018 3 commits
-
-
Sergey Zhupanov authored
Summary: Minor refactoring of several fbcode/folly/ classes. Primarily constification, replacing custom code with call to boost, etc. Reviewed By: yfeldblum Differential Revision: D8239891 fbshipit-source-id: 14cb109b5deb27f8949b7889d195fcba29e2038c
-
Nathan Bronson authored
Summary: F14 can apply some additional optimizations for trivially copyable and trivially destructible values in the case that the allocator doesn't do anything special in its construct and destroy methods. Previously this was gated based on whether the allocator was exactly std::allocator, but that causes this optimization to be missed in some important cases. This diff extends the checking machinery to test if there is actually a default construct or destroy method in the allocator (they are optional) and to test if there is a manual override of the conservative default check. Reviewed By: yfeldblum Differential Revision: D8191437 fbshipit-source-id: c55b8f32427c3f0eff5c8ef42d7b51a57b0cbd1f
-
Marshall Cline authored
Summary: Core::hasResult() is called in lots of places: - future.result() - future.get() - future.wait() - future.within() - future.hasValue() - future.hasException() - future.getTry() - future.raise() - future.poll() - promise.setInterruptHandler() - etc. This diff improves that function as follows (source: godbolt, with optimization, on both gcc and clang): - old: 7 instructions w/ 2 conditional jumps + 1 unconditional jump; fastest path is 4 instructions w/ 2 jumps, slowest is 7 instructions w/ 2 jumps - new: 3 instructions w/ 0 jumps Small improvement overall, but to a widely used function. Reviewed By: yfeldblum Differential Revision: D8231048 fbshipit-source-id: 83a9f5c602475c2ca7066a45635d807596ecf37d
-